我不明白,作爲一個問題 - 我得到:
Test.cs(12,29): error CS1026:) expected
Test.cs(12,42): error CS1514: { expected
Test.cs(12,42): error CS1525: Invalid expression term ')'
Test.cs(12,44): error CS1002: ; expected
Test.cs(13,9): error CS1525: Invalid expression term 'case'
Test.cs(13,19): error CS1001: Identifier expected
Test.cs(13,19): error CS1525: Invalid expression term ':'
Test.cs(13,20): error CS1002: ; expected
Test.cs(15,9): error CS1525: Invalid expression term 'case'
Test.cs(15,20): error CS1001: Identifier expected
Test.cs(15,20): error CS1525: Invalid expression term ':'
Test.cs(15,21): error CS1002: ; expected
不能對類型進行切換。儘管如此,使用ForEach
一般情況下沒問題。
示例代碼:
using System;
using System.Linq;
class Test
{
public string Foo { get; set; }
public int Bar { get; set; }
public void DumpProperties()
{
this.GetType().GetProperties().ToList()
.ForEach(p => Console.WriteLine("{0}: {1}", p.Name,
p.GetValue(this, null)));
}
static void Main()
{
new Test { Foo = "Hi", Bar = 20 }.DumpProperties();
}
}
現在承認我一般不會使用ForEach
在這裏 - 我只是用一個foreach
循環:
foreach (var property in GetType().GetProperties())
{
// Use property
}
我個人認爲這是更清潔,更簡單閱讀,並更容易調試。
我正在構建一個sql字符串,但我需要知道每個屬性的類型是什麼,所以我知道如何構建每個where子句。有什麼建議麼? – bflemi3 2012-07-31 19:47:08
@ bflemi3:就個人而言,我會使用LINQ代替構建SQL,但如果你不能這樣做,可以使用'foreach'循環 - 它會更簡單。你可以使用'Dictionary>'(適合'''')來指示每種類型的處理方式。 –
2012-07-31 19:48:59
決定這就是我正在做的,使用LINQ to SQL。再次感謝喬恩! – bflemi3 2012-07-31 21:00:46