What kind of construction is this

  • Thread starter Thread starter Tony Johansson
  • Start date Start date
T

Tony Johansson

Hello!

In this method CreateComboBoxColumn prefix with Original has the code
starting with column. been surrounded with { and }What kind of construction
is that.

I mean what will the difference be if I instead have this method
CreateComboBoxColumn in this way
private DataGridViewComboBoxColumn CreateComboBoxColumn()
{
DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn()
column.DataPropertyName = ColumnName.TitleOfCourtesy.ToString();
column.HeaderText = ColumnName.TitleOfCourtesy.ToString();
column.DropDownWidth = 160;
column.Width = 90;
column.MaxDropDownItems = 3;
column.FlatStyle = FlatStyle.Flat;
return column;
}

Original
******
private DataGridViewComboBoxColumn CreateComboBoxColumn()
{
DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn()
{
column.DataPropertyName = ColumnName.TitleOfCourtesy.ToString();
column.HeaderText = ColumnName.TitleOfCourtesy.ToString();
column.DropDownWidth = 160;
column.Width = 90;
column.MaxDropDownItems = 3;
column.FlatStyle = FlatStyle.Flat;
}
return column;
}

//Tony
 
The original looks like a bad version of an object initializer in C# 3 - the
correct version would be:

private DataGridViewComboBoxColumn CreateComboBoxColumn()
{
DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn()
{
DataPropertyName = ColumnName.TitleOfCourtesy.ToString();
HeaderText = ColumnName.TitleOfCourtesy.ToString();
DropDownWidth = 160;
Width = 90;
MaxDropDownItems = 3;
FlatStyle = FlatStyle.Flat;
}
return column;
}

If the constructor call had a semi-colon before the opening brace, then this
is just C# 2 code made to look like an object initializer and is equivalent
to:

private DataGridViewComboBoxColumn CreateComboBoxColumn()
{
DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn();
column.DataPropertyName = ColumnName.TitleOfCourtesy.ToString();
column.HeaderText = ColumnName.TitleOfCourtesy.ToString();
column.DropDownWidth = 160;
column.Width = 90;
column.MaxDropDownItems = 3;
column.FlatStyle = FlatStyle.Flat;

return column;
}

Note that you can stick in a brace pair nearly anywhere even if you don't
have a typical C# block - I wouldn't recommend it, but some developers like
this sort of thing - it might be confusing though:

foo();
{ //brace pair not associated with a typical block
foo();
}

--
David Anton
http://www.tangiblesoftwaresolutions.com
Convert VB to C#, C++, or Java
Convert C# to VB, C++, or Java
Convert C++ to C#, VB, or Java
Convert Java to C#, C++, or VB
 
Back
Top