我试图执行一些独立于数字类型的通用数字操作.但是,我知道无法使用泛型来做到这一点.第一个想法是使用where语句过滤传入的类型,但所有数字类型都是关闭的,因此对于通用过滤器无效.此外,泛型不允许标准的数字运算(加法,移位等),因此我能想出的唯一解决方案是非通用地重写每个方法.还有其他想法吗?
作为参考,以下是我最初尝试的代码:
private const int BYTE_SIZE = 8;
private const int UINT16_SIZE = 16;
private const int UINT32_SIZE = 32;
private const int UINT64_SIZE = 64;
public static byte[] ToBytes(UInt16[] pnaValues)
{
return ToSmaller<byte, UInt16>(pnaValues, BYTE_SIZE, UINT16_SIZE);
}
public static byte[] ToBytes(UInt32[] pnaValues)
{
return ToSmaller<byte, UInt32>(pnaValues, BYTE_SIZE, UINT32_SIZE);
}
....
public static UInt16[] ToUInt16s(byte[] pnaValues)
{
return ToLarger<UInt16, byte>(pnaValues, UINT16_SIZE, BYTE_SIZE);
}
public static UInt16[] ToUInt16s(UInt32[] pnaValues)
{
return ToSmaller<UInt16, UInt32>(pnaValues, UINT16_SIZE, UINT32_SIZE);
}
...
public static UInt64[] ToUInt64s(UInt32[] …Run Code Online (Sandbox Code Playgroud) 我正在使用Visual Studio 2005(VS.8.0),我希望强制要求记录所有类成员,而不仅仅是公共成员.虽然公共,受保护或受内部保护的成员没有记录,但设置Visual Studio以生成警告是微不足道的,我正在寻找一种让私有和内部成员抛出相同警告的方法.有什么建议?
注意:我正在使用警告级别4,将警告视为错误,并设置了生成XML标志.