C#使用"模板"在类中实现类似的属性

use*_*607 6 c# generics macros properties

我一直想知道 - 在c#中有一种方法可以为类中的几个属性定义"模板".这就是我的意思:让我们假设我有以下课程

class MyCLass
{
    public int  IntVal1 { get {...}; set{...} }
    public byte IntVal2 { get {...}; set{...} }
    ....
    public long IntValN { get {...}; set{...} }
}
Run Code Online (Sandbox Code Playgroud)

我没有在get和set访问器中编写任何特定的实现,但是想法是所有这些属性都有非常相似的实现 - 不同之处可能是它们在类的不同成员上运行,这些成员具有不同的类型,但总的来说它们都是看起来像.

我的想法是找到一种方法来定义某种(让我们称之为)"模板",其中一些参数可能用于声明所有这些属性,而无需编写每个属性的实际实现 - 也许使用属性!?!

我想我需要的是类似于C宏.

提前10倍

Dav*_*yon 2

是的,如果我理解正确的话,在 C# 中我们使用泛型来实现这一点:

class MyCLass<T>
{
    public T Val { get {...}; set{...} }
}
Run Code Online (Sandbox Code Playgroud)

T定义您想要“模板”的类型。

然后你可以像这样使用这个类:

var myClassInt = new MyClass<int>();
myClassInt.Val // is an integer
Run Code Online (Sandbox Code Playgroud)