gpt4 book ai didi

c# - 为什么我们不能在 C# 中使用公共(public)字段进行数据绑定(bind)?

转载 作者:可可西里 更新时间:2023-11-01 09:07:19 26 4
gpt4 key购买 nike

我知道使用属性优于字段的优势,例如能够在将来需要时提供额外的逻辑。

但我真的想知道为什么不能将公共(public)字段用于数据绑定(bind),甚至不能用于 JavaScriptSerializer 类之类的 JSON 序列化程序。

在这些情况下是否有充分的理由忽略公共(public)字段?或者它只是某种约定?还是只是强制用户使用属性?

最佳答案

简而言之,始终使用属性而不是 public(或者,实际上,甚至 protected)字段从一开始就是 .NET 中的基本设计选择.

稍长的版本是添加对public 字段的支持会增加数据绑定(bind)框架(无论您指的是哪个)的复杂性。字段也缺乏对更改通知的任何支持,这是数据绑定(bind)的一个相当重要的方面(至少在像 Winforms 开发这样的有状态环境中)。即使在检索和设置值的级别,字段和属性也是不同的;虽然 VB.NET 或 C# 中用于检索或设置属性值的语法(在设计上)与字段的语法相同,但在数据绑定(bind)等编程场景中用于执行此操作的机制对于属性与数据绑定(bind)是不同的。领域。

最后,这一切只是意味着需要做更多的工作来为任何数据绑定(bind)场景添加对公共(public)字段的支持,所以无论如何这是一个反模式,这项工作还没有完成。

关于c# - 为什么我们不能在 C# 中使用公共(public)字段进行数据绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27582340/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com