c# - C#调用返回类型不同类型的var作为参数
问题描述
我有一个具有一些属性的结构。其中一些属性被设置为一种类型的变量,如 string int 等。但是有一个变量需要接受不同类型的变量。我尝试了以下方法:
public class Test{
Public Generate_Scentence(){
Answer new = set_values("test", SomeTypeOfVariable);
//some use case examples:
Answer new2 = set_values("test2", "test2");
Answer new2 = set_values("test3", 48584);
Answer new2 = set_values("test4", 4.4f);
Answer new2 = set_values("test5", CustomClass a);
//etc etc
}
public struct Answer{
public string read;
public System.Object val;
}
public Answer set_values(string t, System.Object v){
Answer a = new Answer();
a.read = t;
a.val = v;
return a;
}
}
在这种情况下SomeTypeOfVariable
应该接受如下类型:
string something
int something
CustomClass something
float something
etc etc
在javascript中我可以这样做:
var something = whateveriputhere
我似乎无法弄清楚如何做到这一点。我真的只熟悉 javascript 这是我第一次使用 c#。很抱歉,如果这不正确或奇怪的问题。
如果有不清楚的地方,请告诉我,以便我澄清。
解决方案
泛型结构/类和泛型函数怎么样:
public class Test
{
public void Generate_Scentence()
{
var new1 = set_values("test", new SomeTypeOfVariable());
var new2 = set_values("test2", "test2");
var new3 = set_values("test3", 48584);
var new4 = set_values("test4", 4.4f);
var new5 = set_values("test5", new CustomClass());
//etc etc
}
public Answer<TData> set_values<TData>(string t, TData v)
{
var a = new Answer<TData>();
a.Read = t;
a.Val = v;
return a;
}
}
public struct Answer<TData>
{
public string Read { get; set; }
public TData Val { get; set; }
}
public class SomeTypeOfVariable { }
public class CustomClass { }