c#公共建筑优先

c#公共建筑优先,c#,C#,这两行给出了错误,我如何修改它 public const A first; public const B second; 公共类二元组 { 公共建筑第一; 公共建筑B秒; 公共二元组(A,B) { 第一个=a; 第二个=b; } 公共字符串toString() { 返回“+first+”、“+second+”; } } 将此更改为: public class TwoTuple<A,B> { public const A first; public const B s

这两行给出了错误,我如何修改它

public const A first;
public const B second;
公共类二元组
{
公共建筑第一;
公共建筑B秒;
公共二元组(A,B)
{
第一个=a;
第二个=b;
}
公共字符串toString()
{
返回“+first+”、“+second+”;
}
}
将此更改为:

public class TwoTuple<A,B>
{
    public const A first;
    public const B second;

    public TwoTuple(A  a,B b)
    {
        first=a;
        second=b;
    }

    public String toString()
    {
        return ")"+first+", " +second+")";
    }
}

无法设置常量,可以在构造函数中设置只读变量。

编译时必须知道
常量
变量的值。换句话说,在声明变量时,必须为该变量赋值,比如
conststringname=“sharp.m”

有关C#const的更多信息:

编辑
实际上,您根本不能将const与您的类型
A
B
一起使用。对于要声明的变量
const
,它必须是字符串、null或值类型(例如int)。正如其他人所说,您应该使用
readonly

您会遇到什么错误?在.NET中已经有
Tuple
类可用。答案是:您没有正确使用该语言。对
“C#const”
的简单研究将解释为什么你写的东西毫无意义。你是否假设
A
B
是类型?@JonathonReinhart-我想你必须。。。这是唯一有效的答案,因为它们的值在编译时是未知的(大概是)好吧,在编辑之后,我想我看到了他在做什么
A
B
是泛型类型参数。是的,我假设是这样。我更新了我的示例。起初我没有意识到他在使用自己的自定义类型。
public readonly A first;
public readonly B second;