IsNumeric is onderdeel van de VB.NET statement list, dus onderdeel van de taal. (net zoals lock(object) dat is in C# : syntactical sugar).
IsDouble() bestaat niet in .NET, kennelijk een lib functie.
edit: hmm, ik zie dat die ranzigheid in de namespace Microsoft.VisualBasic is gebouwd (als een 'shared' method in een module (informationmodule).
Dus in C# zou je kunnen doen:
C#:
1
2
3
| using Microsoft.VisualBasic;
bool isNumber = Information.IsNumeric("123"); |
edit2:
wat me verbaast is dat deze niet naar de vb6 vm called, maar het zelf doet:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| public static bool IsNumeric(object Expression)
{
bool flag1;
IConvertible convertible1 = null;
if (Expression is IConvertible)
{
convertible1 = (IConvertible) Expression;
}
if (convertible1 == null)
{
if (Expression is char[])
{
Expression = new string((char[]) Expression);
}
else
{
return false;
}
}
TypeCode code1 = convertible1.GetTypeCode();
if ((code1 != TypeCode.String) && (code1 != TypeCode.Char))
{
return Utils.IsNumericTypeCode(code1);
}
string text1 = convertible1.ToString(null);
try
{
long num2;
if (!StringType.IsHexOrOctValue(text1, ref num2))
{
double num1;
return DoubleType.TryParse(text1, ref num1);
}
flag1 = true;
}
catch (Exception)
{
flag1 = false;
}
return flag1;
} |
maar dus gewoon tryparse doet
Edit3: op zich is er wel wat in de VB.NET taal gebakken dat je niet Information.IsNumeric() hoeft te gebruiken, maar direct IsNumeric() kunt gebruiken. vbc weet kennelijk waar de method staat.
[
Voor 84% gewijzigd door
EfBe op 06-09-2005 11:10
]