![](/img/trans.png)
[英]A field initializer cannot reference the non-static field, method, or property in ASP.Net MVC Controller
[英]asp.net c# - A field initializer cannot reference the non-static field, method or property
我班上有以下代碼:
public string StrLog {get; set;}
然后在同一個類中,我有以下代碼:
private string imgData = StrLog;
我收到以下錯誤消息:
A field initializer cannot reference the non-static field, method or property
它有一個問題:
private string imgData = StrLog;
但不知道如何解決這個問題。
基本上,您不能使用任何其他類級別值初始化類級別變量(除非該值是靜態的) - 這是您的錯誤試圖告訴您的。
您最好的選擇是在構造函數中分配值:
private string imgData = null;
public MyClass()
{
imgData = "some value";
}
在你的情況下,沒有必要為它分配StrLog
的值,因為StrLog
沒有值開始。 所以你也可以把它分配給null
,或者在其他地方分配一個實際的值(比如我的例子)
您不能使用非靜態memeber初始化成員變量。
您需要首先通過在構造函數中設置它來初始化它。
例如:
imgData = null;
我強烈建議你在構造函數中指定一些東西 (可能是null)。 這只是一種好形式。 在下面的示例中,您將了解它為何如此重要。 如果首先執行get並且未設置值,該怎么辦? 它應該至少包含一個空值。
話雖如此,如果您希望使用面向公眾的屬性的值填充imgData的值,則需要執行以下操作:
public string StrLog
{
get { return imgData; }
set { imgData = value; }
}
這會將StrLog的值傳遞給imgData,而您無需任何工作。
以與Strlog相同的方式使imgData成為您的屬性。 然后分配。 它會工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.