01/10/2018, 16:37

Validate bằng mã ascii c#

mình có đoạn code như này

public int Id
        {
            get
            { return _Id; }
            set
            {
                while (value == 0 || value  . . . . . )
                {
                    Console.WriteLine("pre enter:");
                    value = Convert.ToInt32(Console.ReadLine());
                }
                _Id = value;
            }
        }

mình muốn cái id kia chỉ đc nhập số trừ số 0 và trừ tất cả kí tự khác. mình định sd mã ascii nhưng k biết làm ntn.
chỗ 3 chấm phải điền sao ạ.

Trần Hoàn viết 18:53 ngày 01/10/2018

Cách đầu tiên mình nghĩ đến

public int Id
{
	get
	{
		return _Id;
	}
	set
	{
		while (value <= 0)
		{
			Console.WriteLine("pre enter:");
			try
		 	{
			 	value = Convert.ToInt32(Console.ReadLine());
		 	}
			 catch
		 	{
			 	value = 0;
		 	}
		}
		_Id = value;
	}
}
Review Game viết 18:47 ngày 01/10/2018

cái này khi nhập chữ cái vào vẫn exception như bt à

Trần Hoàn viết 18:44 ngày 01/10/2018

Convert.ToInt32() nó không lọc hộ đâu, có ký tự không phù hợp là quăng exception đấy.
Code lọc ký tự trong Console hãm lắm, chi bằng cứ bắt exception cho nhanh.

Văn Dương viết 18:49 ngày 01/10/2018

Không nên viết cái hàm get vào trong property thế kia.
Viết riêng nó ra bên ngoài.

int ReadInt(){
    int val=0;
    do{
        Console.WriteLine("pre enter:");
        string input = Console.ReadLine();
        if(int.TryParse(input, out val)) continue;
    while(val<=0);
    return val;
}

Thế rồi đọc

int inputINT = ReadInt();
obj.Id = inputINT>0?inputINT:obj.Id;
Review Game viết 18:42 ngày 01/10/2018

ths ạ

Bài liên quan
0