[英]How to initialize base class property from derived class?
我在我的mvc應用程序中編寫了以下代碼。
public class TestController : Controller
{
public ActionResult StronglyTypedView()
{
var obj = new MvcRouting.Models.Student();
obj.age = 24;
obj.name = "prab";
ViewData.Model = obj;
return View();
}
}
在上面的代碼中, ViewData
是ControllerBase
類的屬性, Model
是ViewDataDictionary
類的屬性。我在下面的代碼中試過但是我在property1中得到空值,如何解決這個問題?
public interface Iface1
{
int age { get; set; }
}
public class classA : Iface1
{
public int age { get; set; }
}
public abstract class classB
{
public classA Property1 { get; set; }
}
public class TEST : classB
{
public void test()
{
Property1.age = 24;
}
public static void Main()
{
TEST obj = new TEST();
obj.test();
Console.Read();
}
}
您將獲得null引用異常,因為您需要在classB
初始化Property1
public interface Iface1
{
int age { get; set; }
}
public class classA : Iface1
{
public int age { get; set; }
}
public abstract class classB
{
public classA Property1 { get; set; }
}
public class TEST : classB
{
public void test()
{
if(Property1 == null)
{
Property1 = new classA();
}
Property1.age = 24;
}
public static void Main()
{
TEST obj = new TEST();
obj.test();
Console.Read();
}
}
請改用它。
public abstract class classB
{
public classA Property1 { get; set; }
public classB()
{
Property1 = new classA();
}
}
您在設置其屬性之前忘記初始化Property1
。
public class TEST : classB
{
public void test()
{
Property1 = new classA();
Property1.age = 24;
}
public static void Main()
{
TEST obj = new TEST();
obj.test();
Console.Read();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.