PDA

View Full Version : Thắc mắc tí xíu về C#



cold_blood_boy
07-05-2006, 15:31
Mình mới học về C#, nên mới làm trên console. Để in ra thì ta làm nhứ sau:
System.Console.WriteLine("Nhap vao so nguyen");

Vậy còn để nhập vào một số nguyên chẳng hạn thì ta làm cách nào ??? Mình có xài thử System.Console.ReadLine nhưng không được. Cám ơn mọi người.

cuong-nm
07-05-2006, 18:07
Cái này có gì khó đâu. Bạn vẫn dùng hàm Console.Readline() mà thôi. Nhưng giá trị lấy từ hàm này là kiểu string, do đó, bạn phải convert dữ liệu sang kiểu Int. Nhưng vấn đề ở đây là bạn phải dùng khối try...catch để bắt lỗi quá trình convert dữ liệu.
Còn nếu bạn muốn giá trị trả về từ hàm Console.Readline() là kiểu int ngay thì không được đâu. Vì trong c#, kiểu giá trị mà hàm này trả về là kiểu string. Vì vậy, bạn chỉ có thể convert dữ liệu mà thôi. :)

cold_blood_boy
07-05-2006, 20:16
int a;
a = new int();
System.Console.WriteLine(a.ToString());
System.Console.Write("Nhap vao mot so:");
a = System.Console.Read();
System.Console.WriteLine(a.ToString());

Đây là đoạn code mình để trong phương thức void main

Sao khi chạy thử, nếu mình nhập số 1 thì nó xuất ra là 49 còn khi số 2 là 50 nhỉ, mình nghĩ là đáng ra nó phải ra liền là 1 & 2 chứ !!!
@cuong-nm: thanks, mình đã coi chú thix, ReadLine trả về kiểu string còn Read trả về int

nguoivodanh1003
08-05-2006, 00:24
Làm như vầy:
int a;
a = new int();
Console.WriteLine(a.ToString());
Console.Write("Nhap vao mot so:");
a = int.Parse(Console.ReadLine());
Console.WriteLine(a.ToString());
Console.Read();
Vì Read sẽ trả lại int là ASCI value của số nhập vào ("1" = 49)

cold_blood_boy
08-05-2006, 00:41
Làm như vầy:
int a;
a = new int();
Console.WriteLine(a.ToString());
Console.Write("Nhap vao mot so:");
a = int.Parse(Console.ReadLine());
Console.WriteLine(a.ToString());
Console.Read();
Vì Read sẽ trả lại int là ASCI value của số nhập vào ("1" = 49)

Ồ, cảm ơn bạn nhiều :D
Sẵn cho mình hỏi cách nhập số thập phân (float). Còn nhập chuỗi thì dùng ReadLine phải kô bạn ?

cuong-nm
08-05-2006, 16:55
Vấn đề nhập vào số thập phân (float) hay không thì ta vẫn có cách tốt nhất là vẫn cho nhập vào một chuỗi rồi sau đó sẽ convert dữ liệu là ok mà.
Ví dụ:
float fltNum;
Console.WriteLine("Nhap so thap phan: ");
string strTemp = Console.ReadLine();
try
{
fltNum = float.Parse(strTemp);
//thuc hien lenh tiep theo
}
catch(Exception ex)
{
//thong bao loi
}

cold_blood_boy
08-05-2006, 19:40
Như vậy mọi kiểu dữ liệu trong C# đều có phương thức Parse để ép kiểu từ kiểu chuỗi à !

Thanks bro cuong-nm lần nữa :D

samuraitruong
12-05-2006, 22:58
không phải là ep kiểu mà là chuỷen đổi từ một string sang kiểu dử liệu tương ứng của object gọi hàm parse