我怎样才能让一个接口的方法私? [英] How can I make a method private in an interface?

查看:89
本文介绍了我怎样才能让一个接口的方法私?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这样的接口:

public interface IValidationCRUD
{
    public ICRUDValidation IsValid(object obj);
    private void AddError(ICRUDError error);
}



但是,当我用它(实现接口,自动生成的代码),我得到这样的:

But when I use it (Implement Interface, automatic generation of code), I get this:

public class LanguageVAL : IValidationCRUD
{   
    public ICRUDValidation IsValid(object obj)
    {
        throw new System.NotImplementedException();
    }

    public void AddError(ICRUDError error)
    {
        throw new System.NotImplementedException();
    }   
}



该方法AddError是公开的,因为我想不是私人

The method AddError is public and not private as I wanted.

我怎样才能改变呢?

推荐答案

这是界面能只有公共方法。您可以考虑使用一个抽象基类与这样的一个受保护的抽象方法AddError。然后基类可以实现IValidationCRUD接口,但你已经删除课程的私有方法后,才

An interface can only have public methods. You might consider using an abstract base class with an protected abstract method AddError for this. The base class can then implement the IValidationCRUD interface, but only after you have removed the private method of course.

是这样的:

public interface IValidationCRUD
{
    ICRUDValidation IsValid(object obj);
}

public abstract class ValidationCRUDBase: IValidationCRUD {
    public abstract ICRUDValidation IsValid(object obj);
    protected abstract void AddError(ICRUDError error);
}

这篇关于我怎样才能让一个接口的方法私?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆