Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过列表<;对象>;方法签名方法(对象obj),然后回溯到列表<;对象>;_C# - Fatal编程技术网

C# 如何通过列表<;对象>;方法签名方法(对象obj),然后回溯到列表<;对象>;

C# 如何通过列表<;对象>;方法签名方法(对象obj),然后回溯到列表<;对象>;,c#,C#,我有一个对象列表实体,我必须将它传递给一个类的方法,该类的签名为method(object)。它允许我向对象发送列表,但如何将其返回到列表的对象列表 例如 公共类示例 { 公众通行证() { List entityList=新列表(); ENT\u交易实体=新ENT\u交易; entityList.Add(实体); 接收方(实体列表); } 公共无效接收人(对象obj) { //这在运行时是不允许的 列表实体=(列表)对象; } } 我做得对吗?还是应该将方法签名更改为receiver(Lis

我有一个对象列表实体,我必须将它传递给一个类的方法,该类的签名为method(object)。它允许我向对象发送列表,但如何将其返回到列表的对象列表

例如

公共类示例
{
公众通行证()
{
List entityList=新列表();
ENT\u交易实体=新ENT\u交易;
entityList.Add(实体);
接收方(实体列表);
}
公共无效接收人(对象obj)
{
//这在运行时是不允许的
列表实体=(列表)对象;
}
}

我做得对吗?还是应该将方法签名更改为receiver(List obj)以接收对象列表列表?

根据您的评论,您有一个包含带有对象参数的函数的界面

所以我建议你使用通用的

在接口中创建泛型函数

interface ISample<T> where T : class
{
    void receiver<T>(T obj) ;
}

public class Sample : ISample<List<ENT_Transaction>>
{
    public void passer()
    {
        List<ENT_Transaction> entityList = new List<ENT_Transaction>();
        ENT_Transaction entity = new ENT_Transaction;
        entityList.Add(entity);

        receiver(entityList);
    }        

    public void receiver<T>(T obj)
    {
        T entity = obj;
    }
}
接口是一个示例,其中T:class
{
无效接收器(T obj);
}
公共类示例:ISample
{
公众通行证()
{
List entityList=新列表();
ENT\u交易实体=新ENT\u交易;
entityList.Add(实体);
接收方(实体列表);
}        
公共无效接收人(T obj)
{
T实体=obj;
}
}

根据您的评论,您有一个包含带有对象参数的函数的接口

所以我建议你使用通用的

在接口中创建泛型函数

interface ISample<T> where T : class
{
    void receiver<T>(T obj) ;
}

public class Sample : ISample<List<ENT_Transaction>>
{
    public void passer()
    {
        List<ENT_Transaction> entityList = new List<ENT_Transaction>();
        ENT_Transaction entity = new ENT_Transaction;
        entityList.Add(entity);

        receiver(entityList);
    }        

    public void receiver<T>(T obj)
    {
        T entity = obj;
    }
}
接口是一个示例,其中T:class
{
无效接收器(T obj);
}
公共类示例:ISample
{
公众通行证()
{
List entityList=新列表();
ENT\u交易实体=新ENT\u交易;
entityList.Add(实体);
接收方(实体列表);
}        
公共无效接收人(T obj)
{
T实体=obj;
}
}

这是允许的,您是否面临任何运行时异常?请尝试将
用作
关键字。@Veljko89:它不是
列表
的实例。抱歉@Veljko89,这很好,但我的目标是使用对象作为签名,因为我将这些方法实现为interfaceTypical XY问题。解释你想要达到的目标,我们会给你一个合适的解决方案。这很混乱。这是允许的,您是否面临任何运行时异常?尝试使用
作为
关键字。@Veljko89:它不是
列表的实例
。抱歉@Veljko89,这很好,但我的目标是使用对象作为签名,因为我将这些方法实现为InterfaceTypcal XY问题。解释你想要达到的目标,我们会给你一个合适的解决方案。这太混乱了。我觉得类约束似乎没有必要。它阻止使用结构和主类型。类约束对我来说似乎没有必要。它阻止使用结构和主类型。