ref 인수를 사용하는 정적 메서드의 대리자를 만들려고합니다. 왜 내가이 같은 교활한 일을하는지 묻지 말아라. 그것은 닷넷, C# 및 리플렉션이 어떻게 작동하는지 그리고 어떻게 최적화 하는지를 배우는데 모두 포함됩니다.액션의 대표자 < ref T1, T2>
내 코드는 다음과 같습니다
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>;
(내 생각) 때문에 나에게 방법과 일치하지 않는 일반 조치를 바인딩 오류가 있습니다.
var myCram_T_Delegate =
Delegate.CreateDelegate(typeof(Action<ref DataRow, Double>),
my_Cram_T_Method)
as Action<ref DataRow, Double>;
을하지만 이것은 컴파일되지 않습니다 : 시계 창에 Cram_T_Method의 값을 검사
는나는 다음 작업에서 심판 키워드를 사용하여 시도
{Void Cram_T(DataRow ByRef, Double)}
제공합니다. C# 컴파일러는 토큰 "ref"에서 질식합니다.
이 대리인을 만드는 올바른 방법은 무엇입니까?
내부 방법에 제한을 제공합니다 :
오류 예외 : 난 그냥 그것을 시도했습니다 에스. – Bitterblue