gpt4 book ai didi

C# - 接口(interface)/抽象类 - 确保在方法上引发事件

转载 作者:太空狗 更新时间:2023-10-29 20:00:40 26 4
gpt4 key购买 nike

我有一个定义为 IStore 的接口(interface),有两种方法:

public interface IStore<TEntity>
{
TEntity Get(object identifier);
void Put(TEntity entity);
}

我想在 Put 成功时引发一个事件(作为引用,Put 可以在数据库中存储一行,或者在文件系统中存储文件等...)

因此,为 Product 类型实现 Istore 的类看起来有点像这样:

class MyStore : IStore<Product>
{
public Product Get(object identifier)
{
//whatever
}

public void Put(Product entity)
{
//Store the product in db
//RAISE EVENT ON SUCCESS
}
}

我所追求的是一种确保 IStore 的每个实现都引发事件的方法 -我应该有一个抽象类来代替,还是应该有接口(interface)?

最佳答案

我的建议:

public abstract class Store<TEntity>
{
public abstract TEntity Get(object identifier);
public void Put(TEntity entity)
{
//Do actions before call
InternalPut(entity);
//Raise event or other postprocessing
}

protected abstract void InternalPut(TEntity entity);
}

然后在你的类中覆盖 InternalPut

关于C# - 接口(interface)/抽象类 - 确保在方法上引发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3194563/

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