开发者

What does the term "Naked type constraint" refer to?

Recently I ha开发者_Python百科ve read a term "naked type constraint" in the context of Generics. What does it mean? Where do we use it?


As an aside, it is bizarre to me that this somewhat salacious term managed to make it into the MSDN documentation. We certainly do not call these constraints "naked type constraints" on the C# compiler team and I was shocked, shocked! to discover a few years back that this is what the documentation said. We usually call them "type parameter constraints". I have no idea how this term got into the documentation in the first place; there's probably an interesting story there.


From MSDN:

Constraint          Description

where T : U         The type argument supplied for T must be or derive from
                    the argument supplied for U. This is called a naked type
                    constraint.

When a generic type parameter is used as a constraint, it is called a naked type constraint. Naked type constraints are useful when a member function with its own type parameter has to constrain that parameter to the type parameter of the containing type, as shown in the following example:

class List<T>
{
    void Add<U>(List<U> items) where U : T {/*...*/}
}


"When a generic type parameter is used as a constraint, it is called a naked type constraint. Naked type constraints are useful when a member function with its own type parameter has to constrain that parameter to the type parameter of the containing type"

http://msdn.microsoft.com/en-us/library/d5x73970.aspx

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜