Tôi đang cố gắng tạo một đại biểu của một phương pháp tĩnh có tham số ref. Xin đừng hỏi tại sao tôi lại làm điều như vậy. Đó là một phần của việc học cách .Net, C#, và công việc phản chiếu và cách tối ưu hóa nó.Ủy quyền cho một hành động < ref T1, T2>
Mã của tôi là:
public struct DataRow
{
private double t;
static public void Cram_T(ref DataRow dr, double a_t)
{
dr.t = a_t;
}
}
''''
Type myType = typeof(DataRow);
MethodInfo my_Cram_T_Method = myType.GetMethod("Cram_T");
var myCram_T_Delegate =
Delegate.CreateDelegate(typeof(Action<DataRow, Double>),
my_Cram_T_Method)
as Action<DataRow, Double>;
này mang lại cho tôi một lỗi ràng buộc bởi vì (tôi nghĩ) hành động chung không phù hợp với phương pháp này.
Kiểm tra giá trị của Cram_T_Method trong cửa sổ xem cho
{Void Cram_T(DataRow ByRef, Double)}
sau đó tôi đã cố gắng sử dụng từ khóa ref trong hành động:
var myCram_T_Delegate =
Delegate.CreateDelegate(typeof(Action<ref DataRow, Double>),
my_Cram_T_Method)
as Action<ref DataRow, Double>;
Nhưng điều này sẽ không biên dịch. Trình biên dịch C# chokes tại dấu "ref".
Cách đúng để tạo đại biểu này là gì?
đó mang lại hạn chế đối với phương pháp nội S. – Bitterblue