コレクション内の最初の要素 (string[] や List など) が空の場合にアクセスしようとすると、私が作成したメソッドが早期に終了し、例外をスローしないことに気付きました。例えば
var emptyList = new List<string>();
var aha = emptyList.Where(i => i == "four");
var props = aha.First();
//anything after here in the same method does not run
これは正しいですか? どうしてコンパイラの便利な機能になるのでしょうか?! (.Net 4 を使用)
完全な winforms プログラムを編集します。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
var emptyList = new List<string>();
var aha = emptyList.Where(i => i == "four");
var props = aha.First(); //throws exception
var fdsfsa = 0;
}
private void useref() {
var emptyList = new List<string>();
var aha = emptyList.Where(i => i == "four");
var props = aha.First(); //exits method, doesn't throw exception?
var asdf = 0;
}
private void Form1_Load(object sender, EventArgs e)
{
useref();
}
}