如果涉及某一具体案件,则该案件必须是审理成员(无论是方法、财产还是外地)。 这些都是最常见的情况,因此,例子很充分。
如果与某个特定案件无关,那么一名审理成员就要求以任何其他方式获得某种使用。 一个很好的例子是Math.Max
,如果你打电话Math.Max(43,23)
,那么结果涉及43大于23,而不是Math
的任何财产,这些财产可以设想在申请进行过程中会发生重大变化。
Some classes only have need for static members, so we make the class itself static and it can t be instantiated at all.
由于同样的原因,与类别的性质而不是某一案件有关的诉讼也应当静止不变。 E.g. int.MaxValue
is a property of int
, not of e.g. 93.
请注意,<代码>int.MaxValue本身就是int
。 这并非罕见。 其他例子包括<条码>。 时间Span.Zero和string。 就业:代码>。 这可以是方便的,有时也是在防止重复提及类型(与价值类型无关,在参考类型方面不作过多说明)方面的业绩效益。 重要的是不要这样做。 我们不想在<条码>int条码>上保留4294967296不同的固定财产,使之“大意”叫他们! 一般来说,这在以下情况下都是有益的:
特殊案件可由建筑商建造。
OR:
特别案例通常使用(timeSpan.Zero
)和(或)不方便记住(int.MaxValue
比2147483647
或甚至0x7FFFFF
更为明确和易于回顾。 当然,这更是这样。
推广方法是一种静态方法,可以称作是偶然成员。 他们非常方便,但在你能够时,通常更能使用一个榜样成员。 当案件成员无法出席时,他们会再次有用,因为:
- You don t have access to the source of the class (it s another party s class).
- You want to define it on an interface rather than a class.
- You want it to be callable on null (avoid, this is non-idiomatic in C# though more common in other languages).
- You want to define it for particular cases of generics. For example, if I created
MyDictionary<TKey, TValue>
that implemented IDictionary<TKey, TValue>
I can t define a plus
method that adds a number to a stored value because that can only work when TValue is a known numeric type. I can define such a method as an extension method like int Plus<TKey>(this MyDictionary<TKey, int> dict, int addend)
that will then appear like an instance member when TValue
is int, but won t interfer with the use of MyDictionary
for other type parameters.
所有这些案件都给你别无选择,只能使用一种推广方法,但当某审法官做工作时,不会使用。 这一点更清楚,特别是因为有些方面。 互联网的语文只能把一个推广成员视为静态。