Tôi có một lớp phân tích dữ liệu từ tệp văn bản được phân tách bằng dấu phẩy. Tôi có một enum cho các lĩnh vực để giúp tôi phân tích dữ liệu trong dễ dàng hơn. Lớp phân tích tất cả các bản ghi trong giữ các biến công khai cho từng trường, và tất nhiên là các kiểu biến của chúng. Tôi cần lấy loại biến này dựa trên enum đã cho.C# Nhận loại biến công khai dựa trên giá trị Enum
public enum DatabaseField : int
{
NumID1 = 1,
NumID2 = 2,
NumID3 = 3,
};
public class DataBaseRecordInfo
{
public long NumID1 { get; set; }
public int NumID2 { get; set; }
public short NumID3 { get; set; }
public static Type GetType(DatabaseField field)
{
Type type;
switch (field)
{
case DatabaseField.NumID1:
type = typeof(long);
break;
case DatabaseField.NumID2:
type = typeof(int);
break;
case DatabaseField.NumID3:
type = typeof(short);
break;
default:
type = typeof(int);
break;
}
return type;
}
};
NumID1, NumID2, NumID3 tất cả được chỉ định trong hàm tạo của tôi. Tuy nhiên, tôi muốn nhận các loại này mà không bao giờ tạo ra một thể hiện của DataBaseRecordInfo
. Ngay bây giờ phương pháp tĩnh của tôi ở trên sẽ làm việc, tuy nhiên, nếu tôi muốn thay đổi loại biến, tôi sẽ phải thay đổi nó ở 2 nơi. Có cách nào để tránh phải thay đổi điều này ở cả hai nơi và giữ nó như một phương pháp tĩnh?
Tôi không hiểu câu hỏi. Bạn có thể rõ ràng hơn không? "Tuy nhiên, tôi muốn có được những kiểu này mà không bao giờ tạo ra một thể hiện của DataBaseRecordInfo" - điều đó có nghĩa là gì? – hackerhasid
Nó có nghĩa là tôi có scenerios mà tôi muốn các loại biến đó, nhưng không muốn khởi tạo lớp này để lấy các loại. – jsmith