C# · 12月 30, 2021

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

我有一些自动实例化代码,我想在一个相当大的类中应用于大约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;}