我创建的两个属性之间有什么区别(即优势/劣势)?两者似乎都是正确的,但在类中声明属性的最佳方式(实践)是什么?
[Serializable]
public class MySample
{
public string String1 = string.Empty;
private string _string2 = string.Empty;
public string String2
{
get { return _string2 ; }
set { _string2 = value; }
}
}
Run Code Online (Sandbox Code Playgroud) 是声明
public string FirstName;
Run Code Online (Sandbox Code Playgroud)
相当于
public string FirstName { get; set;}
Run Code Online (Sandbox Code Playgroud)
我相信没有区别,但我发现了以下内容:当我创建一个模型时 - 就像这样
public class Subject
{
public string SubjectName;// { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后在MVC中使用表单发布此对象,我得到了SubjectName价值null.但是,如果我删除注释的访问器,那么我得到一个值.这种行为有什么理由吗?
我想要重新提出我的问题.
我的问题是.获得我可以在整个项目中使用的相同列表的最佳方法是什么?
我的代码现在看起来像这样:
public static class MessagingController
{
static List<MessagingDelivery> MessagingDeliveryList = Messaging.GetMessagingDeliveryList();
}
internal static class Messaging
{
static List<MessagingDelivery> MessagingDeliveryList;
static Messaging()
{ MessagingDeliveryList = new List<MessagingDelivery>(); }
internal static void CreateMessagingText(short reference, short number, string text)
{ MessagingDeliveryList.Add(new MessagingDelivery(reference, number, text)); }
internal static void ChangeMessagingDelivery(short reference, string status, string error)
{ MessagingDelivery.ChangeStatus(reference, status, error); }
internal static List<MessagingDelivery> GetMessagingDeliveryList()
{ return MessagingDeliveryList; }
}
Run Code Online (Sandbox Code Playgroud)
老问题:
获得a static List<T>和为什么是"最佳实践" ?
代码1:
public static List<MessagingDelivery> messagingDeliveryList
= …Run Code Online (Sandbox Code Playgroud) public class MyClass
{
public int x;
}
public class MyClass2: MyClass
{
x=1;
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试从基类访问变量 x 但我收到一条错误消息,指出名称 x 在当前上下文中不存在。