gpt4 book ai didi

c# - 与结构的接口(interface),通过引用使用泛型

转载 作者:行者123 更新时间:2023-11-30 21:22:02 25 4
gpt4 key购买 nike

对不起各位!我非常喜欢代码!我忘了把编译器错误。

这里是新版的代码简化版!

这是错误:

错误 1 ​​The best overloaded method match for 'IWeird.DataBase.ModifyData(ref IWeird.IDataTable)' has some invalid arguments
错误 2 参数“1”:无法从“ref IWeird.Periods”转换为“ref IWeird.IDataTable”

问题:我不能通过引用传递其中包含结构的接口(interface),我做错了什么?

这是新的示例代码:

class PeriodsProcessor
{
public PeriodsProcessor()
{
Periods Data = new Periods();
DataBase DB = new DataBase();

Console.WriteLine(Data.Value);
DB.ModifyData(ref Data);
Console.WriteLine(Data.Value);

Console.ReadLine();
}
}


public interface IDataTable
{
string Value { get; set; }
}

public struct Periods : IDataTable
{
public string Value { get; set; }
}

public class DataBase
{
public void ModifyData(ref IDataTable data)
{
data.Value = "CHANGE";
}
}

class Program
{
static void Main(string[] args)
{
PeriodsProcessor PeriodsProcessor = new PeriodsProcessor();
}
}

最佳答案

在您的代码中,您没有传递其中包含结构的接口(interface),而是传递了实现接口(interface)的结构。这是两个完全不同的东西。至于解决您的问题,我根本没有理由使用结构,所以我会将 Periods 更改为一个类。

关于c# - 与结构的接口(interface),通过引用使用泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2437102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com