.net 将在不使用';不支持未签名原因问题?

.net 将在不使用';不支持未签名原因问题?,.net,c++-cli,unsigned,cls-compliant,.net,C++ Cli,Unsigned,Cls Compliant,我的情况是: 我正在处理.NET库,它封装了一个现有的C++库。C++中的一种方法返回一个未签名的int,并且我还想返回一个.NET INTIN32.0./P>的.NET对应方法。 这会不会给不支持无符号数据类型的语言带来一些问题?很可能会有问题(特别是当您返回的数字大于2^31时),但根据这篇文章 似乎不支持无符号数据类型的.NET语言不多(或者,没有重要的语言,尽管重要性可能是主观的)。很可能会出现问题(特别是当您返回的数字大于2^31时),但根据这篇文章 似乎不支持无符号数据类型的.N

我的情况是:

我正在处理.NET库,它封装了一个现有的C++库。C++中的一种方法返回一个未签名的int,并且我还想返回一个.NET INTIN32.0./P>的.NET对应方法。


这会不会给不支持无符号数据类型的语言带来一些问题?

很可能会有问题(特别是当您返回的数字大于2^31时),但根据这篇文章


似乎不支持无符号数据类型的.NET语言不多(或者,没有重要的语言,尽管重要性可能是主观的)。

很可能会出现问题(特别是当您返回的数字大于2^31时),但根据这篇文章


似乎不支持无符号数据类型的.NET语言并不多(或者说,没有重要的语言,尽管重要性可能是主观的)。

如果一个类合法地符合CLS,除了CLS最低要求之外,唯一需要语言支持的特性是那些在没有这些特性的情况下毫无意义的特性。例如,符合CLS的方法组可能包括无符号整数类型的重载,如果这些方法提供的任何功能可以通过其他方式使用


如果一个类应该做一些事情,比如提供一种从某个外部数据集中读写无符号32位值的方法,那么CLS合规性不会禁止该类型提供读写类型为
UInt32
的数据的方法,但要求通过此类方法读取或写入的任何数据必须由不需要该类型的其他方法读取[例如,它们可以使用
Int64
]。使用
Int64
的客户机代码可能比使用
UInt32
的代码效率低,但是如果一种语言不能支持
UInt32
不会阻止客户机代码执行它需要执行的操作,它只会稍微减慢它的速度。

如果一个类合法地符合CLS,除了CLS最低要求之外,唯一需要语言支持的特性是那些在没有这些特性的情况下毫无意义的特性。例如,符合CLS的方法组可能包括无符号整数类型的重载,如果这些方法提供的任何功能可以通过其他方式使用


如果一个类应该做一些事情,比如提供一种从某个外部数据集中读写无符号32位值的方法,那么CLS合规性不会禁止该类型提供读写类型为
UInt32
的数据的方法,但要求通过此类方法读取或写入的任何数据必须由不需要该类型的其他方法读取[例如,它们可以使用
Int64
]。使用
Int64
的客户机代码可能比使用
UInt32
的代码效率低,但是如果一种语言不能支持
UInt32
,这并不会阻止客户机代码完成它需要做的事情,它只会稍微减慢速度。

目前,我不知道哪种语言不支持unsigned。对于像2^31这样的无符号数据,我们是否可以像System.Int64 intData=getUnsignedData()那样使用它?@softempire:我不希望这样工作,您可能会得到一个负返回值(但我无法验证这一点,因为我手头没有一种没有无符号类型的.NET语言)。但这不是纯粹的理论讨论吗?目前,我不知道哪种语言不支持unsigned。对于像2^31这样的无符号数据,我们是否可以像System.Int64 intData=getUnsignedData()那样使用它?@softempire:我不希望这样工作,您可能会得到一个负返回值(但我无法验证这一点,因为我手头没有一种没有无符号类型的.NET语言)。但这不是纯粹的理论讨论吗?