标签:
更强大的泛型约束
与 C++ 的模板相似,C# 的泛型使得编写适用于多种类型的代码更加简洁。假设没有泛型。我们可能须要使用 object 并运行类型转换,或者针对每一种类型写大量雷同的代码。在泛型类型约束上。C# 一如既往的严格。可是因为泛型约束还不完好,有时不得不写一些反复的代码。比方以下这个样例:
public static T MaxT(T a, T b) where T is int or long or float or double
{
return a = b ? a : b;
}
为了更清楚的把
同一个子模块内部的类之间公开的内容与不同的子模块之间公开的内容差别开,希望未来 C# 能够提供命名空间范围的訪问修饰。比方以下这个样例:
namespace Moudle
{
public class Common { ... }
private class Secret { ... }
}
C++ 中的友元也能够解决问题,可是我猜你们都不喜欢 friend。。。
在 Unity 开发中这个问题更严重,由于脚本组件必须写在单独的文件、且不能够为内部类。
foreach(ref Vector3 position in positions)
{
position.x = 0;
}
这就是一个没有意义的限制。我们按功能模块来划分代码,发现某一个方法使用扩展的形式来编写更优雅,于是不得不把这种方法拿出去,放到某个名字没有意义的静态类里。这太无聊了。另外。扩展方法不支持以属性的形式扩展、不支持以引用的形式扩展,都是须要改进的。
class MyClass
{
public static DoSomething(this OtherClass obj, ...) { ... }
public static getSetSomething(this OtherClass obj){ get {...} set{...} }
public static void ModifyValue(this ref ValueType value) { ... }
}
using A.B;
class MyClass { A.B.C.OtherClass x; }
这太不智能了。
希望能够正确的识别子命名空间。
using A.B;
class MyClass { C.OtherClass x; }
声明:此篇文档时来自于【狗刨学习网】社区-unity极致学院,是网友自行公布的Unity3D学习文章,假设有什么内容侵犯了你的相关权益,请与官方沟通。我们会即时处理。
版权声明:本文博客原创文章,博客,未经同意,不得转载。
标签:
原文地址:http://www.cnblogs.com/gcczhongduan/p/4737788.html