我在一個類中定義3層代表的功能類似於使用兩種代表功能的返回視圖中在c#在同一類另一個委託功能
public func<datetime,string>A=>str1 { }
public func<datetime,string>B=>str2 { }
public func<datetime,string>C=>str3
{
return a+b;
}
如何可以在c函數調用的a,b,因爲返回在函數c是錯誤的?
我在一個類中定義3層代表的功能類似於使用兩種代表功能的返回視圖中在c#在同一類另一個委託功能
public func<datetime,string>A=>str1 { }
public func<datetime,string>B=>str2 { }
public func<datetime,string>C=>str3
{
return a+b;
}
如何可以在c函數調用的a,b,因爲返回在函數c是錯誤的?
看到你所提供的代碼不編譯的原因有很多。要調用A
和B
方法,你必須正確地傳遞參數,喜歡叫它:
public static Func<DateTime, string> A = (date) => { return date.ToString(); };
public static Func<DateTime, string> B = (date) => { return date.ToString(); };
public static Func<DateTime, string> C = (date) => { return A(date) + B(date); };
static void Main(string[] args)
{
var date = DateTime.Now;
Console.WriteLine(C(date));
}
見我還添加了static
,因爲沒有你得到的錯誤:
A field initializer cannot reference the non-static field, method, or property
Program.A
雖然我可能會讓他們的屬性而不是公共領域...(然後編輯你的答案,以清楚說明他們是領域,而不是方法...) –
@JonSkeet - 你能否詳細說明我可以糾正我的答案? –
細說哪個部分?您目前正在定義字段 - 我建議將它們設爲公共只讀屬性,例如'public static Func
您的代碼是沒有感。嘗試提供問題的完整和清晰的解釋。準確描述你期望發生的事情,確切地說,發生了什麼。不是一些模糊的描述,需要我們從沒有實現它的代碼中找出意圖。 – jmcilhinney
這甚至編譯? –
@jmcilhinney myproblem只是我不知道如何調用一個委託函數。它不需要額外的代碼,因爲在我的描述我使用它的功能名稱及其參數類型 –