Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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# 不一致的可访问性:约束类型“;特别";比项目数据库通用保存对象更难访问_C# - Fatal编程技术网

C# 不一致的可访问性:约束类型“;特别";比项目数据库通用保存对象更难访问

C# 不一致的可访问性:约束类型“;特别";比项目数据库通用保存对象更难访问,c#,C#,我有一个这样的界面 interface special { int spz_ID { get; set; } string Specialization_name { get; set; } } 我有一个实现接口的通用方法 public int SaveObjects<T>(T obj) where T : special { lock (locker) { if (obj.spz_ID !=

我有一个这样的界面

interface special
{
     int spz_ID { get; set; }

     string Specialization_name { get; set; }

}
我有一个实现接口的通用方法

public int SaveObjects<T>(T obj) where T : special
    {

        lock (locker)
        {
            if (obj.spz_ID != 0)
            {
                database.Update(obj);
                return obj.spz_ID;

            }
            else
            {
                return database.Insert(obj);
            }


        }
    }
此表的通用方法是实现接口的类型

 public int SaveObject<T>(T obj) where T : IObject
    {

        lock (locker)
        {
            if (obj.ID != 0)
            {
                database.Update(obj);
                return obj.ID;

            }
            else
            {
                return database.Insert(obj);
            }


        }
    }
public int SaveObject(T obj),其中T:ioobject
{
锁(储物柜)
{
如果(对象ID!=0)
{
数据库更新(obj);
返回obj.ID;
}
其他的
{
返回数据库.Insert(obj);
}
}
}
构建解决方案时,我有一个错误:
不一致的可访问性:约束类型“特殊”的可访问性不如项目数据库通用保存对象(T)。

您的方法定义为
公共
。这要求泛型类型
T
也是公共的。因为它有一个类型为
special
的约束,所以该类型也必须是public

默认情况下,如果没有明确说明,接口将创建为
内部
,因此比
公共
更难访问

将界面定义更改为
public
,即可:

public interface special 
{
    //... member definitions
}

如果您不希望您的界面是
公共的
任何使用该界面的方法都不能是公共的。

将“特殊界面”更改为
特殊公共界面
public interface special 
{
    //... member definitions
}