Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么可以';如果我没有';t写入{get;set;}_C#_Json - Fatal编程技术网

C# 为什么可以';如果我没有';t写入{get;set;}

C# 为什么可以';如果我没有';t写入{get;set;},c#,json,C#,Json,我有一门很简单的课 public class A { public List<int> intList_a = new List<int>(); // {get; set;} } 我发现如果我写{get;set;}而不是new List();我可以将json中的值转换为a.intList_a。否则我[0,1]不会进入我的列表 然而,有时我需要找出a2.intList_a.Count。如果我只使用{get;set;},intList将为null。我知道每次我调用C

我有一门很简单的课

public class A
{
    public List<int> intList_a = new List<int>(); // {get; set;}
}
我发现如果我写{get;set;}而不是new List();我可以将json中的值转换为a.intList_a。否则我[0,1]不会进入我的列表

然而,有时我需要找出a2.intList_a.Count。如果我只使用{get;set;},intList将为null。我知道每次我调用Count时都可以检查null。但是如果我能在init上重新创建它会更容易,因为大多数时候我需要这个值

我也明白,I C#6.0使它更容易,但我的工作环境不允许我升级

那么为什么我必须写{get;set;}才能将[0,1]放入列表中呢? 在我可以将这两个特性解析为a的同时,是否还可以将这两个特性都转换为默认的new List()


我可以在构造函数中编写新的数据,但我的数据类太大,无法手动完成。

在C#中,字段和属性之间存在差异

动态对象可以具有在运行时创建/发现的其他属性,但不能包含字段
DynamicJson
在内部使用C#的功能

但你可以很容易地将两者混合:

private IList<Int32> _intList = new List<Int32>();
public IList<Int32> IntList
{
    get { return this.intList; }
    set { this.intList = value; }
}
private IList\u intList=new List();
公共IList IntList
{
获取{返回this.intList;}
设置{this.intList=value;}
}

我不知道这是否适用于
DynamicJson
,但它适用于其他序列化系统。

谢谢,这很有效。我想知道有没有一种更短的方法来完成这项工作,这样我就可以在我庞大的班级中找到/替换它们。。
Int32 thisIsAField = 0;
Int32 ThisIsAProperty { get; set; }
private IList<Int32> _intList = new List<Int32>();
public IList<Int32> IntList
{
    get { return this.intList; }
    set { this.intList = value; }
}