Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.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# 在C语言中使用访问器的优缺点是什么#_C#_.net_Xml_Windows_Accessor - Fatal编程技术网

C# 在C语言中使用访问器的优缺点是什么#

C# 在C语言中使用访问器的优缺点是什么#,c#,.net,xml,windows,accessor,C#,.net,Xml,Windows,Accessor,可能重复: 我目前正在构建一个小应用程序来管理XML文件。代码中的每个条目都由自定义类的实例表示。现在要设置和获取属性,我可以允许直接访问它们,也可以使用访问器。哪一个更好,为什么?在这个特定场景中,访问器的明显优势在于,您可以将访问权限限制为仅对XML模式有效的属性和子级(假设存在模式,这应该是因为您控制XML)。这将由setter实现,但getter也将帮助您减少键入量。访问器允许您在将来更改引擎罩下的工作方式。。。也许您改变了XML模式或完全抛弃了XML。。。您可以修改访问器实现,以便调

可能重复:


我目前正在构建一个小应用程序来管理XML文件。代码中的每个条目都由自定义类的实例表示。现在要设置和获取属性,我可以允许直接访问它们,也可以使用访问器。哪一个更好,为什么?

在这个特定场景中,访问器的明显优势在于,您可以将访问权限限制为仅对XML模式有效的属性和子级(假设存在模式,这应该是因为您控制XML)。这将由setter实现,但getter也将帮助您减少键入量。

访问器允许您在将来更改引擎罩下的工作方式。。。也许您改变了XML模式或完全抛弃了XML。。。您可以修改访问器实现,以便调用类的任何代码都可以保持原样

不使用访问器的唯一好处是,您可以少维护几行代码


一定要使用访问器在类之间共享内容。

使用或不使用访问器没有任何优点和缺点:您必须使用它们

这只是一个OOP原则:封装对类字段或计算值的访问,这样它们的使用者就不会关心如何检索或分配某些值

为什么??因为封装。这是OOP最重要的原则之一,因为这确保了在单个点中检索和分配值的方式。

优点:

  • 封装-可以在以后更改实现,而无需重新编译使用DLL的所有内容
  • 可以放入接口(不能有字段)
  • 可以被覆盖(虚拟化)
  • 许多序列化程序只序列化属性,而不序列化字段
  • WPF绑定仅对属性有效
  • 缺点:

  • 需要输入更多的代码(但对于自动实现的属性,实际上没有太多)

  • 一般来说,我总是在任何重要的课堂上使用它们。至少我会使用自动属性。

    如果您试图在.NET中管理Xml文件,您应该研究Xml序列化和xsd.exe。可能的重复:使用公共变量有一些合法的边缘情况。在副标题
    例外情况下,
    和他链接的文章:好的,但这只是观点,我同意你在图形编程中的第二个链接,但无论如何,99.9%的情况必须是“使用属性,不要直接公开字段”。