有无{get;放;我是C#的新手publicstringMyValue;之间有什么区别?和publicstringMyValue{get;放;我一直认为两者是一样的。我的代码中的某些内容不起作用。使用后一种形式可以使它起作用。但是不知道有什么区别。你能帮助我吗?谢谢第一个是公共领域,第二个是自动实现的公共财产。他们是不同的。使用自动实现的属性,编译器将生成一个私有支持字段。虽然两者都可以用作从类中公开数据的方式,但您应该按照信息隐藏原则使用属性——字段应该是私有的,并且只能通过属性访问。这允许您在不破坏调用者的情况下更改实现。如果“后者使它起作用”,则您可能正在使用数据绑定;数据绑定通常只适用于属性(而不是字段)。这些可以是显式属性或自动实现的属性,如示例中所示。请注意,如果使用BinaryFormatter(无论如何IMO存在严重缺陷),从字段更改为属性可能会破坏序列化,但属性优于字段。一定要做出改变;pfirst是一个字段,而不是一个属性。查看这个问题:What'sthedifferencebetweenFieldandPropertyinC#?这些实际上是非常不同的结构。这种形式是实际为数据分配内存的唯一方式:stringMyData;这称为“字段”。这种形式称为“自动实现的属性”:stringMyData{get;放;}编译器将其翻译为以下内容:stringmyDataField;字符串MyData{获取{返回myDataField;}设置{myDataField=值;因此,您可以看到它们非常不同,但它们最终都创建了一个存储区域。但是,使用此属性可以提供更多的未来灵活性。检查一下...将私有成员封装为属性和定义没有私有成员的属性有什么区别?可能会有帮助...以上就是C#学习教程的全部内容:withandwithout{get;收藏不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
