2011-09-27 55 views
0

有没有办法让一个类可以返回一个默认类型而不指定属性?一个属性可以返回一个默认值(类似于一些内置的.NET属性)吗?

如果我有一个有几个属性的类,并且一个属性返回了一个字符串值,而另一个返回了其他类型,我可以执行以下操作吗?

Dim StudentGrade as new StudentGradeClass 

呼叫,并得到默认属性,

Dim CurrentGrade as string=StudentGrade 

,而不是这个

Dim CurrentGrade as string=StudentGrade.Current 

的原因,我问这是当我有其他类作为属性和希望班只是得到一个默认的返回值。

+0

我认为这是一个坏主意。 –

+0

出于兴趣,您认为展示此行为的内置属性是什么? – LukeH

+0

有* no *“内置.NET属性”,表现如此。但是,正如一些答案所解释的那样,您可以通过隐式转换实现这一点 - 但要注意这些。 –

回答

2

NET框架已经为你指的是什么的“defaul不支持不动产“。你可能通过使用implicit operators来伪造它,但我会建议这样做可能是一个坏主意。

+0

这是什么DateTime.Now属性呢? – jdross

+1

不,DateTime.Now只是DateTime类的一个静态属性。你的例子也一样。为了适应你的要求,就好像DateTime本身就是当前日期/时间一样。 – asawyer

+1

@jdross:编号DateTime.Now是一个静态属性(所以你不会说'new DateTime()。Now'),它只是创建并返回一个新的DateTime实例。你要做的事情更像是将'DateTime'实例作为'long'投入。这就是隐式运算符可以帮助你的地方,但是有一个原因,那就是.NET框架的创建者并没有将'DateTime'隐式转换为'long'。这只会造成不必要的混淆。最好提供一个'Ticks'属性,以便用户确切知道'long'代表的是什么。 – StriplingWarrior

相关问题