Có cách nào để truy cập thành viên bằng một chuỗi (đó là tên) không?Làm thế nào để truy cập thành viên lớp bằng chuỗi trong C#?
Ví dụ: nếu mã tĩnh là:
classA.x = someFunction(classB.y);
nhưng tôi chỉ có hai dây:
string x = "x";
string y = "y";
Tôi biết trong JavaScript bạn chỉ có thể làm:
classA[x] = someFunction(classB[y]);
Nhưng làm thế nào để làm điều đó trong C#?
Ngoài ra, có thể xác định tên theo chuỗi không?
Ví dụ:
string x = "xxx";
class{
bool x {get;set} => means bool xxx {get;set}, since x is a string
}
CẬP NHẬT, để tvanfosson, tôi không thể có được nó làm việc, đó là:
public class classA
{
public string A { get; set; }
}
public class classB
{
public int B { get; set; }
}
var propertyB = classB.GetType().GetProperty("B");
var propertyA = classA.GetType().GetProperty("A");
propertyA.SetValue(classA, someFunction(propertyB.GetValue(classB, null) as string), null);
không thể làm việc, vui lòng kiểm tra cập nhật của tôi –
@EricYin Tôi đoán tôi cũng giả định rằng các loại tương thích. Nếu các loại không tương thích thì bạn sẽ cần phải chuyển đổi chúng thành các loại tương thích. Một cách sẽ sử dụng 'Chuyển đổi', giả sử một chuyển đổi tồn tại. – tvanfosson
Đã làm việc, cảm ơn. Nó sẽ hoạt động rất thấp? Hoặc đó là giải pháp duy nhất và không có sự lựa chọn nào là –