【问题标题】:What exactly means this type of generic usage (dot between function and generic): "var mf: MeshFilter = GetComponent.<MeshFilter>();"? [duplicate]这种泛型用法(函数和泛型之间的点)到底意味着什么:“var mf: MeshFilter = GetComponent.<MeshFilter>();”? [复制]
【发布时间】:2019-02-04 06:24:03
【问题描述】:

我是 C# 的新手。我正在将语言从 Java 切换到 C#,并且发现泛型的不同用法。有人能解释一下函数和泛型之间的这个点是什么意思吗?有这个点的泛型函数和没有这个点的函数有什么区别?

我在谷歌搜索它可能是什么,但我没有找到这样的东西。我在这里搜索它:https://www.geeksforgeeks.org/c-sharp-generics-introduction/ 但没有任何结果。

这是我看不懂的代码:

function Start() {  
    var mf: MeshFilter = GetComponent.<MeshFilter>();
    ...

来源:https://docs.unity3d.com/Manual/Example-CreatingaBillboardPlane.html

【问题讨论】:

  • 那不是C#,那是UnityScript,所以你当然不理解为C#
  • 这个点到底是什么意思?
  • 我不知道,我不知道 UnityScript。如果您想了解基础知识,我建议您获取 UnityScipt 教程。但是,C# 版本是 MeshFilter mf = GetComponent&lt;MeshFilter&gt;();
  • 我猜这只是 Unity 将泛型集成到不支持它的语言中的方式。
  • 您实际上应该通知 Unity,因为它们提供了 UnityScript/JavaScript 示例,尽管对 UnityScript 的支持已经/将被删除

标签: c# unity3d generics


【解决方案1】:

这不是 c#,它叫做 unityscript,你可以很容易地分辨出来,因为在声明变量时,你不能在变量名的末尾有一个 ':',而且你不能在 '. '您必须在之前指定它,或者在某些情况下编译器会根据输出自动检测它,例如 Task.Run(()=&gt;{return int.MaxValue; }) 将如何由编译器自动完成以 Task.Run&lt;int&gt;(()=&gt;{return int.MaxValue;}).

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 2014-07-08
    • 2020-12-02
    • 1970-01-01
    相关资源
    最近更新 更多