为什么编译时没有错误的空任务

Moo*_*ons 1 .net c# asp.net asp.net-4.0 compiler-bug

这是我的片段:

var country = BLLocations.Instance.GetCountries();
ddlCountry.DataSource = 
ddlCountry.DataTextField = "Country";
ddlCountry.DataValueField = "CountryCode";
ddlCountry.DataBind();
Run Code Online (Sandbox Code Playgroud)

见第二行:

ddlCountry.DataSource = 
Run Code Online (Sandbox Code Playgroud)

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

gdo*_*ica 10

这只是这个:

ddlCountry.DataSource =  ddlCountry.DataTextField = "Country";
Run Code Online (Sandbox Code Playgroud)

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

就像:

var x = 2;
var y = 3;
x = y = 1000;
Run Code Online (Sandbox Code Playgroud)

(注意这根本不是好习惯!令人困惑,难以令人厌恶)

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

return x ?? x = new ExpensiveObject();//
Run Code Online (Sandbox Code Playgroud)

它能做什么:

  1. 如果x不为null则返回x.
  2. 如果x为null,则赋值x new ExpensiveObject()an返回赋值 - x.

有用的功能,但要小心.