gpt4 book ai didi

C# 等效于 C++ 宏并使用 Auto<> 属性

转载 作者:可可西里 更新时间:2023-11-01 08:50:18 25 4
gpt4 key购买 nike

我有一些自动实例化代码,我想将其应用于一个相当大的类中的大约 15 个属性。代码类似于以下内容,但每个实例的类型不同:

protected ComplexType _propertyName;
public ComplexType PropertyName
{
get
{
if (_propertyName == null) {
_propertyName = new ComplexType();
}

return _propertyName;
}
}

要在 C++ 中重复这一点(因为有大约 15 个实例),我会使用预处理器宏,但我注意到 C# 不支持它们。

我想知道是否有人对如何在 C# 中干净利落地提出建议?

最佳答案

这可能会使事情变得更整洁,您可以添加此方法以引入一些重用:

protected ComplexType _propertyName;
public ComplexType PropertyName
{
get
{
return GetProperty(ref _propertyName);
}
}
.
.
private T GetProperty<T>(ref T property) where T : new()
{
if (property == null)
property = new T();
return property;
}

关于C# 等效于 C++ 宏并使用 Auto<> 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1388511/

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