c#-[cs] 如何在一个函数体内给泛型赋值?

问题描述

[cs] 如何在一个函数体内给泛型赋值?

例如

    public UnityEngine.Component GetComponent(System.Type type) {}

    // metadata token 060018FE
    public T GetComponent<T>() where T : UnityEngine.Component {
        return (T)(this.GetComponent(typeof(T)) as T);
     }

怎么反推上面2个函数

public UnityEngine.Component GetComponent(System.Type type) {

        //这里怎么调用  T GetComponent<T>()? type赋值<T>
}

解决方案

 public UnityEngine.Component GetComponent(System.Type type) {

        return GetComponent<UnityEngine.Component>();
}

解决方案二:

最好是泛型调用非泛型。
如果反过来,用类型参数来调用泛型,那么就要用到反射,效率不高:

public UnityEngine.Component GetComponent(System.Type type)
{
    var methodInfo = this.GetType().GetMethod("GetComponent", Type.EmptyTypes);
    var methodInfo_t = methodInfo.MakeGenericMethod(type);
    return methodInfo_t.Invoke(this, null) as UnityEngine.Component;
}
时间: 2024-11-05 12:09:51

c#-[cs] 如何在一个函数体内给泛型赋值?的相关文章

c++问题-C++的类中怎么在一个函数中引用上一层的函数

问题描述 C++的类中怎么在一个函数中引用上一层的函数 在同一个类中怎么引用先定义的函数来定义函数?比如在一个时期类的定义中,一个日期加1的函数中怎么调用先定义的一个求是否闰年的函数. 解决方案 C++定义隐式转换函数将类转换为内部的一个成员变量c++函数默认参数是一个好的设计吗? 解决方案二: 直接在函数内调用就可以了.不知道你说的上一层是什么意思.是基类的函数还是集合类所属的对象的函数,前者直接调用,或者用 基类类名::函数名后者用构造函数传对象指针 解决方案三: 同一个类中的函数都是通过t

qmap-QT Qmap 在一个函数中定义,怎么在另一个函数中遍历

问题描述 QT Qmap 在一个函数中定义,怎么在另一个函数中遍历 50C void address_pool::set_address_pool(QString get_IP){ QString ip; ip= get_IP; qDebug()<<""IP""<<ip; QStringList str=ip.split(""); QStringList strlist= str.at(0).split("&qu

c语言-C语言,如何在一个函数内部,获取这个函数入口点的地址?

问题描述 C语言,如何在一个函数内部,获取这个函数入口点的地址? 1C # Git@OSC 的 Android 和 iOS 客户端全面开源 include #include void show(void* p) { printf(""%pn""p); } int main() { show(&show); show(show); return 0; } Output: 1 2 0x8048480 0x8048480 解决方案 答案处处有.函数名称就是入口地址

javascript-js 一个全局变量,在一个函数中进行赋值,调用另一个函数 ,这个全局变量的值却没有值为undined

问题描述 js 一个全局变量,在一个函数中进行赋值,调用另一个函数 ,这个全局变量的值却没有值为undined var typer; function zhe(){ typer = 'spline'; search(); } function search() { var jsonXData = []; var jsonyD = []; $.ajax({ url : base + '/gateBrandCount/statisticsbySpecial.html', data : $('#for

模块内的函数体内的static变量问题

问题描述 模块内的函数体内的static变量问题 我想问的是,在模块内的static变量是否又有函数体内跟函数体外之分,意思就是在模块内的某一个函数体内声明的static变量能否被模块内的另一个函数调用? 解决方案 函数体内声明的static变量不能被其他函数所引用,所声明的变量的作用域 只限于这个函数体内

泛型函数如何定义泛型委托

问题描述 泛型函数如何定义泛型委托 Class cA Function F(Of T)(ByVal Num As T) As T End Function Delegate Function _F(Of In T, Out O)(ByVal Num As T) As O Shadows F As _F(Of T, O) = New _F(Of T,O)(addressof F(Of T) End Class Shadows F As _F(Of T, O) = New _F(Of T,O)(ad

《剑指offer》写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

弱菜刷题还是刷中文题好了,没必要和英文过不去,现在的重点是基本代码能力的恢复. [题目] 剑指offer 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. [思路] 直觉想到用二进制的位运算.最后写出来是一个迭代的过程. 每次迭代先计算x和y的和但不处理进位,那么相当于做异或,得到res1 然后处理进位问题,相当于计算与运算,得到res2 那么res2左移1位,再加到res1上,则整个运算的最终结果转化为res1+(res2<<1) 因为res2做左移,总会减小到

jsp用函数给年月日下拉列表赋值不成功

问题描述 jsp用函数给年月日下拉列表赋值不成功 代码如下: $(function nian() { for ( var i = 1990; i < 2016; i++) { $("select[name='Year']").append( "" + i + ""); } for ( var i = 1; i < 13; i++) { $("select[name='Month']").append( "

onclick-新手一直对函数的引用呀赋值什么 有点迷糊

问题描述 新手一直对函数的引用呀赋值什么 有点迷糊 1:var a = function() {alert('您好吗')} c()//这个是赋值吗?还是引用? 2:onclick="f1()" //这个又是什么意思呢?是赋值还是? 为什么这个f1的函数要用双引号?单引号不行吗? 解决方案 1,给a变量赋值为函数. 2,给dom对象添加click事件处理函数,单双引号都行 一个是script代码块里面的,一个是dom对象 解决方案二: 1:var a = function() {aler