Visual Basic odpowiednik C# type check
Jaki jest odpowiednik Visual Basic następującego wyrażenia boolean C#?
data.GetType() == typeof(System.Data.DataView)
Uwaga: zmienna {[1] } jest zadeklarowana jako IEnumerable
.
4 answers
As I remember
TypeOf data Is System.Data.DataView
Edit:
Jak zauważył James Curran, działa to, jeśli dane są podtypem systemu.Data.DataView również.
Jeśli chcesz ograniczyć to do systemu.Data.Tylko DataView, powinno działać:
data.GetType() Is GetType(System.Data.DataView)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-12 20:28:35
Pomyślałem, że wrzucę podsumowanie z korzyścią dla programistów C#:
C # val is SomeType
W VB.NET: TypeOf val Is SomeType
W przeciwieństwie do Is
, można to negować tylko jako Not TypeOf val Is SomeType
C # typeof(SomeType)
W VB.NET: GetType(SomeType)
C # val.GetType() == typeof(SomeType)
W VB.NET: val.GetType() = GetType(SomeType)
(chociaż Is
również działa, patrz dalej)
C # val.ReferenceEquals(something)
W VB.NET: val Is something
Można ładnie zanegować: val IsNot something
C # val as SomeType
W VB.NET: TryCast(val, SomeType)
C# (SomeType) val
W VB.NET: DirectCast(val, SomeType)
(z wyjątkiem przypadków, w których typy zaangażowane implementują operator cast)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-14 13:41:24
Możesz również użyć TryCast , a następnie sprawdzić, czy nie ma nic, w ten sposób możesz użyć odlewanego typu później . Jeśli nie musisz tego robić, nie rób tego w ten sposób, ponieważ inni są bardziej wydajni.
Zobacz ten przykład:
VB:
Dim pnl As Panel = TryCast(c, Panel)
If (pnl IsNot Nothing) Then
pnl.Visible = False
End If
C #
Panel pnl = c as Panel;
if (pnl != null) {
pnl.Visible = false;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-02 09:55:18
Spróbuj tego.
GetType(Foo)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-12 20:19:28