gpt4 book ai didi

c# - 通用 .NET 类中的 public static (const)

转载 作者:太空狗 更新时间:2023-10-29 18:13:12 25 4
gpt4 key购买 nike

是否有语法技巧可以在不指定(临时)类型的情况下获取泛型类中的常量?

public class MyClass<T>{
public const string MyConstant = "fortytwo";
}

// I try to avoid this type specification.
var doeswork = MyClass<object>.MyConstant;

// Syntax similar to what I'd like to accomplish.
var doesnotwork = MyClass.MyConstant;

有一个关于静态变量(常量)不在不同类型之间共享的警告,如 MyClass<object>MyClass<int>但我的问题是关于可能的可用语法技巧。

最佳答案

使用非泛型抽象父类。

public abstract class MyClass
{
public const string MyConstant = "fortytwo";
}

public class MyClass<T> : MyClass
{
// stuff
}

var doeswork = MyClass.MyConstant;

这当然假设常量需要成为泛型类的一部分是有原因的;如果它具有公共(public)可访问性,我看不出你为什么不把它放在一个单独的类中。

拥有一个非泛型抽象父类对于您创建的每个泛型类来说都是一个好主意;通用类实际上是特定子类型类的模板,而不是真正的父类,因此拥有真正的非通用父类可以使某些技术(例如但不限于此)变得容易得多。

关于c# - 通用 .NET 类中的 public static (const),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27841936/

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