gpt4 book ai didi

c# - 请解释 C# 属性是如何工作的?

转载 作者:可可西里 更新时间:2023-11-01 09:17:15 25 4
gpt4 key购买 nike

我学习 C# 已有一段时间了,并且在我的 C# 书籍(深入了解 C#)中遇到了属性。老实说,我不明白它们的用途,以及我为什么要使用它们。我用谷歌搜索了几次,但仍然无法理解它们。

有人可以给我解释一下这个外国概念吗?

谢谢,

瓦米塔伦

最佳答案

属性提供对数据的受控访问;在最基本的情况下,它可能只是意味着封装一个字段(不推荐使用公共(public)字段),编译器可以让您轻松完成:

public int Foo {get;set;} // the compiler handles the field for you

但是,您可以使用该属性来强制执行逻辑或处理副作用:

private int foo;
public int Foo {
get { return foo; }
set {
if(value < 0) throw new ArgumentOutOfRangeException();
if(value != foo) {
foo = value;
OnFooChanged(); // fire event notification for UI bindings
}
}
}

其他常见选项有延迟加载、计算成员、代理成员等。

您还可以更改辅助功能,例如:

public int Foo { get; protected set; }

只能由类型和子类分配,而不能由不相关的代码分配。它也可以只有一个 get 或 set。

基本上,属性作为一对 方法 的更正式版本,使谈论“Foo”而不是“get_Foo”/“set_Foo”等更容易(用于双向绑定(bind))。

与字段不同,属性也可以在接口(interface)上公布,这对于基于接口(interface)的代码来说是必不可少的

关于c# - 请解释 C# 属性是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6476789/

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