gpt4 book ai didi

c# - 条件类型别名

转载 作者:行者123 更新时间:2023-11-30 20:56:17 24 4
gpt4 key购买 nike

我希望能够为用户提供一个选择——是使用 16 位索引(在 OpenGL 中)还是 32 位索引。在 C++ 中,我可能只是为 int 或 short 创建一个别名,但在 C# 中我似乎没有这个选项。基本上我要做什么可以总结在下面的类(class)中:

using System;

namespace Something
{
public class Conditional
{
public Conditional(Boolean is16Bit)
{
if (is16Bit)
{
SOMETYPE is Int16
}
else
{
SOMETYPE is Int32
}
}

private List<SOMETYPE> _something;
}
}

别名(如果可以的话)会好得多 - 我只是不想强制任何使用此代码的人编写 #define 语句,这可能吗?

谢谢

最佳答案

似乎您可以为此使用泛型:

namespace Something
{
public class Conditional<T>
{
private List<T> _something = new List<T>();
private Conditional()
{
// prevents instantiation except through Create method
}

public Conditional<T> Create()
{
// here check if T is int or short
// if it's not, then throw an exception

return new Conditional<T>();
}
}
}

并创建一个:

if (is16Bit)
return Conditional<short>.Create();
else
return Conditional<int>.Create();

关于c# - 条件类型别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17641713/

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