Cara menentukan apakah sebuah string mewakili nilai numerik atau tidak (Panduan Pemrograman C#)
Untuk menentukan apakah sebuah string merupakan representasi valid dari jenis numerik tertentu, gunakan metode statis TryParse
yang diimplementasikan oleh semua jenis numerik primitif dan juga oleh jenis seperti DateTime dan IPAddress. Contoh berikut menunjukkan cara menentukan apakah "108" adalah int yang valid atau tidak.
int i = 0;
string s = "108";
bool result = int.TryParse(s, out i); //i now = 108
Jika string berisi karakter non-numerik atau nilai terlalu besar atau terlalu kecil untuk jenis yang telah Anda tentukan, TryParse
akan mengeluarkan false dan mengatur parameter keluar ke nol. Jika tidak, nilai true akan dihasilkan dan parameter keluar akan diatur ke nilai numerik dari string tersebut.
Catatan
String dapat hanya berisi karakter numerik dan masih tidak valid untuk jenis metode TryParse
yang Anda gunakan. Misalnya, "256" bukan nilai yang valid untuk byte
, tetapi valid untuk int
. "98.6" bukan nilai yang valid untuk int
, tetapi decimal
yang valid.
Contoh
Contoh berikut menunjukkan cara menggunakan TryParse
dengan representasi string dari nilai long
, byte
, dan decimal
.
string numString = "1287543"; //"1287543.0" will return false for a long
long number1 = 0;
bool canConvert = long.TryParse(numString, out number1);
if (canConvert == true)
Console.WriteLine("number1 now = {0}", number1);
else
Console.WriteLine("numString is not a valid long");
byte number2 = 0;
numString = "255"; // A value of 256 will return false
canConvert = byte.TryParse(numString, out number2);
if (canConvert == true)
Console.WriteLine("number2 now = {0}", number2);
else
Console.WriteLine("numString is not a valid byte");
decimal number3 = 0;
numString = "27.3"; //"27" is also a valid decimal
canConvert = decimal.TryParse(numString, out number3);
if (canConvert == true)
Console.WriteLine("number3 now = {0}", number3);
else
Console.WriteLine("number3 is not a valid decimal");
Pemrograman yang Kuat
Jenis numerik primitif juga menerapkan metode statis Parse
, yang mengeluarkan pengecualian jika stringnya bukan angka yang valid. TryParse
umumnya lebih efisien karena hanya mengeluarkan false jika angkanya tidak valid.
.NET Keamanan
Selalu gunakan metode TryParse
atau Parse
untuk memvalidasi input pengguna dari kontrol seperti kotak teks dan kotak kombo.