Bagikan melalui


Cara menentukan apakah string mewakili nilai numerik (Panduan Pemrograman C#)

Untuk menentukan apakah string adalah representasi yang valid dari jenis numerik tertentu, gunakan metode TryParse statis yang diimplementasikan oleh semua jenis numerik primitif dan juga berdasarkan jenis seperti DateTime dan IPAddress. Contoh berikut menunjukkan cara menentukan apakah "108" adalah int yang valid.

int i = 0;
string s = "108";  
bool result = int.TryParse(s, out i); //i now = 108  

Jika string berisi karakter nonnumerik atau nilai numerik terlalu besar atau terlalu kecil untuk jenis tertentu yang telah Anda tentukan, TryParse mengembalikan false dan mengatur parameter keluar ke nol. Jika tidak, fungsi ini mengembalikan true dan menetapkan parameter keluaran ke nilai numerik dari string.

Nota

Kemungkinan suatu string hanya berisi karakter numerik tetapi tetap tidak valid untuk tipe 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 merupakan decimalyang valid.

Contoh

Contoh berikut menunjukkan cara menggunakan TryParse dengan representasi string 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 = {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 = {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 = {number3}");
else
Console.WriteLine("number3 is not a valid decimal");

Pemrograman yang Kuat

Jenis numerik primitif juga mengimplementasikan metode statis Parse, yang melemparkan pengecualian jika string bukan angka yang valid. TryParse umumnya lebih efisien karena hanya mengembalikan 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.

Lihat juga