gpt4 book ai didi

c# - 访问器(accessor)的静态扩展

转载 作者:太空宇宙 更新时间:2023-11-03 10:57:13 29 4
gpt4 key购买 nike

我有很多类有很多这样的属性:

public AnyClass[] car
{
get
{
return this.anyClassField;
}
set
{
this.anyClassField= value;
}
}

在每个 set{} 访问器中,如果值为 null,我需要设置 isEmptyFlag=true。所以我想也许有可能以某种方式编写静态扩展来自动执行此操作,或者可能是另一种解决方案?

最佳答案

您可以创建通用扩展方法来检查数组是否为 null 或空。

给定以下代码:

public class Foo
{
private anyClass[] anyClassField;

public anyClass[] car
{
get
{
return this.anyClassField;
}
set
{
this.anyClassField = value;
}
}
}

public class anyClass
{
// add properties here ....
}

您可以像这样创建一个扩展方法:

public static class CollectionExtensions
{
public static bool IsNullOrEmptyCollection<T>(this T[] collection)
{
if (collection == null)
return true;

return collection.Length == 0;
}
}

使用代码(不要忘记包含 CollectionExtensions 类的命名空间):

var foo = new Foo();

// returns true
bool isEmpty = foo.car.IsNullOrEmptyCollection();

// add 1 element to the array....
foo.car = new [] { new anyClass() };

// returns false
isEmpty = foo.car.IsNullOrEmptyCollection();

关于c# - 访问器(accessor)的静态扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19045478/

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