【发布时间】:2015-05-08 21:53:29
【问题描述】:
我正在使用的Value Type 的定义。
如果我得到一个对象成员
class SampleClass{
object SampleMember{ get; set; }
}
并将其设置在一个函数中...
public SampleClass foo(SampleClass bar){
bar.SampleMember = 6m;
return bar;
}
并且需要在另一个中测试它;测试需要知道它是引用类型还是值类型(在本例中为十进制)。
public SampleClass blick(SampleClass spok){
if( TestUtilities.IsAValueType(bar.SampleMember) )
{
DoBlickWorkOnSpok(spok)
}
return spok;
}
在 spok 上可以做什么样的测试来测试它是否是一个值类型?
【问题讨论】:
-
@Servy Primitive Types aka 预定义类型或内置类型,请查看:msdn.microsoft.com/en-us/library/aa711900%28v=vs.71%29.aspx
-
@chomba 鉴于上下文,我认为 OP 实际上并不是指内置类型,但如果他是,他应该使用该术语,因为如果他这样做了,那么问题将是可回答的,因为这是一个定义明确的术语。您链接到的内容在 VB.NET 规范中,并且特定于该语言。该列表中的类型也将不同于 C# 中的内置类型,这就是为什么使用正确的术语很重要;它改变了含义。
-
@Servy FWIW 语言规范在介绍中将
int和double称为原始类型,但您说得对,它不是正式的定义。 -
仅供参考,显然内置类型和原始类型不一样看看这个答案:“Primitive types” versus “built-in value types”
-
很公平 - 我会更新问题以使其更清楚。我问错问题了。很抱歉。
标签: c#