왼쪽 객체에 func (또는 비슷한 방법)을 적용 할 방법이 있는지 알아 내려고합니다. 예 :C# func <> 왼쪽 객체에 적용
member1.MyFunction()
다음은 간단한 사용 방법입니다. 클래스 B의 목록과 클래스 B의 요소를 요약하는 메소드가 포함 된 ClassA를 얻었습니다. 그리고 classB는 double 형의 memberX와 memberY라는 두 개의 속성을 가지고 있습니다. 이 기능은 우리가 합치는 ClassB의 회원을 선택하는 데 사용됩니다.
CS1061의 C 번호가에 대한 정의와의 첫 번째 인수를 받아들이는없는 확장 메서드를 포함하지 않습니다
가 나는 오류가
theSum += TheList[i].TheFunction();
쓰기 라인에 오류가있어 유형을 찾을 수 있습니다 (사용 지시문 또는 어셈블리 참조가 누락 되었습니까?)
해결 방법을 알고 있습니까? 내 연구는 제네릭 기능의 왼쪽에 적용되는 모든 것을 이끌어 낼 수 없었습니다.
public class ClassA
{
public List<ClassB> TheList;
public ClassA()
{
ClassB m1 = new ClassB(1, 2);
ClassB m2 = new ClassB(1, 2);
ClassB m3 = new ClassB(1, 2);
TheList= new List<ClassB>() { m1, m2, m3 };
}
private double CalculateSum(Func<double> TheFunction)
{
double theSum = 0;
for (int i = 0; i < TheList.Count(); i++)
{
theSum += TheList[i].TheFunction();
// I'd like to use the previous line instead of having to write
// a function for both of the following.
// theSum += TheList[i].GetMember1();
// theSum += TheList[i].GetMember2();
}
return theSum;
}
}
public class ClassB
{
private double memberX;
private double memberY;
public ClassB(double x, double y)
{
memberX = x;
memberY = y;
}
public double GetMember1() { return memberX; }
public double GetMember2() { return memberY; }
}
나는 그것을 피하려고했지만 답변 (및 검색 결과)을 볼 때 Func <> 또는 다른 유사한 방법을 사용하는 다른 방법이 없다고 생각합니다. –
func을 왼쪽 객체에 적용하려면 내 업데이트를 참조하십시오. –