Trong C# có thể tạo một hàm mới khi đang bay để xác định một biến không?C# Biến = hàm mới() {};
Tôi biết rằng
string getResult() {
if (a)
return "a";
return "b";
}
String result = getResult();
là có thể, nhưng tôi đang tìm một cái gì đó giống như
String result = new string getResult() {
if (a)
return "a";
return "b";
}
Đây có phải là có thể? Nếu có, ai đó sẽ chứng minh?
EDIT Có thể
Chỉnh sửa: Final - Giải pháp
Đây là kết quả cuối cùng của những gì tôi barbarically bị tấn cùng
Func<string> getResult =() =>
{
switch (SC.Status)
{
case ServiceControllerStatus.Running:
return "Running";
case ServiceControllerStatus.Stopped:
return "Stopped";
case ServiceControllerStatus.Paused:
return "Paused";
case ServiceControllerStatus.StopPending:
return "Stopping";
case ServiceControllerStatus.StartPending:
return "Starting";
default:
return "Status Changing";
}
};
TrayIcon.Text = "Service Status - " + getResult();
(Nếu tôi hiểu ý định của người hỏi ...) Tôi khuyên bạn nên chống lại điều này, vì nó không phải là những gì 'Func' s thường được sử dụng cho, và sẽ gây nhầm lẫn cho người đọc trong tương lai của mã của bạn (mình bao gồm) mà quen thuộc hơn với các mẫu sử dụng 'Func' bình thường. Trừ khi nó thực sự là một trường hợp mà một 'Func' hoặc' Hành động' sẽ có ý nghĩa hơn, hoặc là nội tuyến mã, hoặc làm cho nó một phương pháp riêng biệt. –
Tôi sẽ phải không đồng ý. Trong khi tôi không biết nhu cầu của OP là gì và đây là một ví dụ giả tạo, khả năng xác định và lặp lại/có điều kiện/cuối cùng thực hiện một đại biểu là cả hai mạnh mẽ và phổ biến. Nhưng đó chỉ là tôi. –
Điều này sẽ không thực sự làm việc cho tôi như Tim S. nói. Tôi chỉ muốn xác định nó trong một phương pháp riêng biệt, nếu tôi đã sử dụng tuyến đường này. Mục đích thực sự duy nhất của tôi khi làm điều này là định nghĩa phong cách lười biếng tất cả trong một dòng như Actionscript, hoặc những gì tôi tin là cũng có thể có trong Javo. Khi nhận ra nó có thể khó hơn tôi ban đầu có ý định tôi tò mò làm thế nào nó có thể được thực hiện, nếu nó thực sự có thể được thực hiện. –