1

这是我的片段:

var country = BLLocations.Instance.GetCountries();
ddlCountry.DataSource = 
ddlCountry.DataTextField = "Country";
ddlCountry.DataValueField = "CountryCode";
ddlCountry.DataBind();

见第二行:

ddlCountry.DataSource = 

它编译成功并发布到云端。奇怪的!

4

3 回答 3

10

就是这样:

ddlCountry.DataSource =  ddlCountry.DataTextField = "Country";

换行不起作用,这是一个有效的代码。

就像:

var x = 2;
var y = 3;
x = y = 1000;

(请注意,这根本不是一个好习惯!它令人困惑且难以反感)

C# 中的每个代码都返回一个值(尽管该值可以为 void),它允许您执行此延迟加载:

return x ?? x = new ExpensiveObject();//

它能做什么:

  1. 如果 x 不为 null,则返回 x。
  2. 如果 x 为 null,则分配 xnew ExpensiveObject()并返回分配值 - x。

有用的功能,但要小心。

于 2013-01-02T11:46:16.157 回答
2

这是可以接受的,就像您可以拥有:

a = b = c;

我很惊讶虽然由于类型的原因没有警告。ddlCountry.DataSource 和 ddlCountry.DataTextField 必须是我认为的相同类型。

在这种情况下,编译器会忽略空格,因为它在语法上无关紧要。更具体地说,这是由预处理器完成的。

于 2013-01-02T11:46:33.540 回答
0

在 C# 中,与许多其他语言一样,语句由;字符分隔,而不是由换行符分隔。因此写作:

var someString =


"SomeValue";

完全没问题。

您的代码段与

ddlCountry.DataSource = "Country";
ddlCountry.DataTextField = "Country";
于 2013-01-02T11:47:31.783 回答