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
}