gpt4 book ai didi

c# - 当我键入对象时,使用接口(interface)还是类有什么区别吗?

转载 作者:太空宇宙 更新时间:2023-11-03 18:58:25 24 4
gpt4 key购买 nike

我创建了这个界面:

public interface IPhrase
{
int CategoryId { get; set; }
string PhraseId { get; set; }
string English { get; set; }
string Romaji { get; set; }
string Kana { get; set; }
string Kanji { get; set; }
}

和这个类:

public class Phrase : IPhrase
{
public Phrase()
{
}

public int CategoryId { get; set; }
public string PhraseId { get; set; }
public string English { get; set; }
public string Romaji { get; set; }
public string Kana { get; set; }
public string Kanji { get; set; }
}

这段代码返回数据并将其类型转换为 Phrase:

var phrases = db2.Query<Phrase>("SELECT * FROM Phrase", ans);
var phrases = db2.Query<IPhrase>("SELECT * FROM Phrase", ans);

我想知道的是,我在这里使用IPhrasePhrase 是否有任何区别/优势?另外,我在这个例子中创建一个 IPhrase 接口(interface)有什么好处(如果有的话)。这会导致代码更具可读性吗?

最佳答案

接口(interface)是保证的契约,任何实现接口(interface)的类都将实现接口(interface)中定义的方法和属性。这允许您使用该接口(interface)创建方法、列表等,它们接受任何实现该接口(interface)的类,例如

public interface IExample
{
int GetInt();
}

public void ProcessInt(IExample value)
{
var tempInt = value.GetInt();
// Do processing here
}

这允许将实现接口(interface) IExample 的任何具体类传递给此方法。该方法确保传递的任何具体类都将实现 GetInt 方法。

关于c# - 当我键入对象时,使用接口(interface)还是类有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40176007/

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