就像是
- public static class StringHelpers
- {
- public static char first(this string p1)
- {
- return p1[0];
- }
- public static implicit operator Int32(this string s) //this doesn't work
- {
- return Int32.Parse(s);
- }
- }
所以:
- string str = "123";
- char oneLetter = str.first(); //oneLetter = '1'
- int answer = str; // Cannot implicitly convert ...
解决方法
不,没有扩展操作符(或属性等) – 只有扩展方法.
C#团队已经考虑过了 – 可以做各种有趣的事情(想象扩展构造函数) – 但它不是在C#3.0或4.0中.有关详细信息,请参阅Eric Lippert’s blog(与往常一样).