C# 从方法中获取要分配给的变量的类型

C# 从方法中获取要分配给的变量的类型,c#,C#,我想创建一个方法,该方法接受一个动态输入参数,并返回一个可用于填充类型化变量的动态参数。是否有一种方法可以从方法中获取要分配给的变量的类型 double dbl = AssignValue("Hello"); public dynamic AssignValue(dynamic ValueToAssign) { Type type = //do something to get the type of variable "dbl" switch (type.Name)

我想创建一个方法,该方法接受一个动态输入参数,并返回一个可用于填充类型化变量的动态参数。是否有一种方法可以从方法中获取要分配给的变量的类型

double dbl = AssignValue("Hello");

public dynamic AssignValue(dynamic ValueToAssign)
{
    Type type = //do something to get the type of variable "dbl"

    switch (type.Name)
    {
        case "Double":
             return double.Parse(AssignValue);
             break;
        case "Decimal":
             return decimal.Parse(AssignValue);
             break;
        //...
    }    
}
我试图在堆栈框架中找到一些东西,但没有成功

任何需要进一步研究的术语都将不胜感激

是否有一种方法可以从方法中获取要分配给的变量的类型

double dbl = AssignValue("Hello");

public dynamic AssignValue(dynamic ValueToAssign)
{
    Type type = //do something to get the type of variable "dbl"

    switch (type.Name)
    {
        case "Double":
             return double.Parse(AssignValue);
             break;
        case "Decimal":
             return decimal.Parse(AssignValue);
             break;
        //...
    }    
}
不可以。方法无法检索有关其结果将分配给的变量的任何信息

但是,您可以使用泛型告诉方法您希望它返回的对象类型:

double dbl = AssignValue<double>("Hello");

public T AssignValue<T>(object valueToAssign)
{
    Type type = typeof(T);
    switch(type.Name)
    {
        //...
    }
}
double dbl=AssignValue(“Hello”);
公共赋值(要指定的对象值)
{
类型=类型(T);
开关(类型.名称)
{
//...
}
}

typeOf(ValueToAssign)或ValueToAssign.GetType(),这是完全不可能的。@Dr.Stitch:他想要的是
double
,而不是
string
。另外,
typeof(variable)
是非法的。是的,我刚才提到了如何获取变量的类型。好的,我现在正在研究这些。我想我假设这是可能的,因为你可以做类似的事情,比如,使用StackFrame来获取调用方法的名称,比如:好的,告诉我这不可能是一个很好的答案,所以我将使用你提供的这个选项。非常感谢!