trong một trong các dự án của tôi, tôi đang sử dụng hai phương pháp sau đây. 1. GetDoubleValue và 2. GetIntValue. GetDoubleValue sử dụng double.TryParse để tham số str chuỗi và trả về 0 nếu nó thất bại trong khi GetIntValue cố gắng int.TryParse tham số str chuỗi và trả về 0 nếu nó không thành công. Những gì tôi muốn là kết hợp hai phương thức này thành một phương thức chung mà cùng với chuỗi str nhận tham số T cũng như vậy nếu tôi muốn sử dụng phương thức GetDoubleValue tôi có thể sử dụng gấp đôi tham số T và nếu tôi muốn sử dụng phương thức GetIntValue tôi có thể sử dụng Int cho tham số Tcách sử dụng <T> .TryParse trong một Phương thức chung trong khi T là hai hoặc Int
public double GetDoubleValue(string str)
{
double d;
double.TryParse(str, out d);
return d;
}
public int GetIntValue(string str)
{
int i;
int.TryParse(str, out i);
return i;
}
Lưu ý: Tôi đã thử một cái gì đó như thế này;
private T GetDoubleOrIntValue<T>(string str) where T : struct
{
T t;
t.TryParse(str, out t);
return t;
}
EDIT
Trong cơ sở dữ liệu của tôi, tôi có hơn 30 cột trong bảng differenct có datatype số. Tôi muốn chèn 0 vào mỗi cột nếu người dùng không gõ bất cứ điều gì trong hộp văn bản, tức là anh ta để lại tất cả hoặc một số hộp văn bản trống. Nếu tôi không sử dụng phương thức GetIntValue, tôi sẽ phải sử dụng thân phương thức hơn 30 lần. đó là lý do tại sao tôi làm điều này thông qua phương pháp tiếp cận phương pháp. Tôi đang viết ba của hơn ba mươi ví dụ ví dụ
cmd.Parameters.Add("@AddmissionFee", SqlDbType.Decimal).Value = GetIntValue(tbadmissionfee.Text);
cmd.Parameters.Add("@ComputerFee", SqlDbType.Decimal).Value = GetIntValue(tbcomputerfee.Text);
cmd.Parameters.Add("@NotesCharges", SqlDbType.Decimal).Value = GetDoubleValue(tbnotescharges.Text);
Tôi muốn kết hợp hai phương pháp nêu trên vì hôm nay tôi đang gặp hai phương pháp như thế này mà nếu kết hợp sẽ không đưa ra bất cứ sự cải thiện tốt hơn trong lập trình nhưng ngày mai tôi có thể có hàng chục phương pháp như thế này sẽ tốt hơn được kết hợp thành một phương pháp chung chung. ví dụ tôi có thể có GetInt32Value, GetShortValue vv hy vọng nó bây giờ là xóa lý do tại sao tôi muốn điều này ???
Với cây trồng hiện tại của những hạn chế kiểu chung chung, điều này là không thể. – Oded
Bạn sẽ gọi phương thức chung này là gì? – BoltClock
Bạn có chắc chắn muốn hàm này tự động trả về giá trị mặc định nếu phân tích cú pháp không thành công? – Lee