C#新手在這里。
我在下面有一堂課:
namespace CompanyDevice.DeviceResponseClasses
{
public class DeviceStatusClass
{
public class Root
{
public static string RequestCommand { get; set; }
}
}
}
在另一個命名空間中,我有:
namespace CompanyDevice
{
public class StatusController : ApiController
{
public DeviceStatusClass Get()
{
var returnStatus = new DeviceStatusClass();
returnStatus.Root.RequestCommand = "Hello"; //'Root' is causing a CS0572 error
return returnStatus;
}
}
}
我確定我在這里犯了一些基本錯誤。你能幫我找到嗎?謝謝。
uj5u.com熱心網友回復:
您從型別而不是實體訪問靜態屬性。
DeviceStatusClass.Root.RequestCommand = "Command";
因為 RequestCommand 屬性是靜態的,所以永遠只有一個。也許這是您想要的,但可能不是基于您的使用情況。
您可以從 RequestCommand 中洗掉 static 關鍵字,然后您可以通過實體訪問它,但是您需要在 DeviceStatusClass 中為 Root 的實體添加欄位或屬性。
public class DeviceStatusClass
{
public Root root = new Root();
public class Root
{
public string RequestCommand { get; set; }
}
}
并像您最初一樣使用。
public class StatusController : ApiController
{
public DeviceStatusClass Get()
{
var returnStatus = new DeviceStatusClass();
returnStatus.root.RequestCommand = "Hello";
return returnStatus;
}
}
uj5u.com熱心網友回復:
你可能有java背景。在c#中嵌套類只更改名稱,它們不會使父類包含子類的實體
namespace CompanyDevice.DeviceResponseClasses
{
public class DeviceStatusClass
{
public class Root
{
public static string RequestCommand { get; set; }
}
public Root DeviceRoot {get;set;} <<<=== add this
}
}
進而
returnStatus.DeviceRoot.RequestCommand = "Hello";
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/466478.html
標籤:C#
