代碼示例
class Main{
Name Jack = new Name();
Jack.Speak();
}
class Name{
public string speak(){
Console.WriteLine("Hello", valuename);
}
public Name()
{
valuename = nameof(Jack);
}
}
輸出我正在搜索的內容:
Hello Jack.
如果用戶鍵入Name Joe = new Name();輸出將是Hello Joe.
uj5u.com熱心網友回復:
區域變數名稱是語法糖,通常會被編譯器丟棄,因此沒有直接的方法可以做到這一點。
您可以獲得的最接近的是[CallerArgumentExpression]讓編譯器捕獲傳遞給引數的源代碼運算式,但這僅適用于方法引數并且將捕獲整個運算式,而不僅僅是變數名稱。例如,下面的程式將列印jack則jack "hello":
using System;
using System.Runtime.CompilerServices;
class Program {
static void Main()
{
var jack = "dummy";
WriteExpression(jack);
WriteExpression(jack "hello");
}
static void WriteExpression(
string param,
[CallerArgumentExpression("param")] string paramExpression = null
) => Console.WriteLine(paramExpression);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/367635.html
