接口可以把DLL里的类作为属性吗

那该多好啊!!! 2024-07-24 10:51:06

 

1,先是引用了这样一个DLL,

 

2,然后随便定义一个接口,接口名随便写。

在定义接口里,我发现居然可以用DLL里的类名  SolutionInfo 作为属性,

    public interface IHTVision
    {
        /// <summary>
        /// 获取解决方案信息
        /// </summary>
        /// <param name="solutionInfo">返回解决方案信息</param>
        /// <returns></returns>
        SolutionInfo ListProjects();
        /// <summary>
        /// 连接状态
        /// </summary>
        bool IsConnected { get; set; }

3,在查  SolutionInfo这个类来源

namespace HTVision.Service.Models
{
    public class SolutionInfo
    {
        public string CurrentProjectName { get; set; }

        public List<ProjectInfo> Projects { get; set; } = new List<ProjectInfo>();

    }
}

4,所以我就疑问了,SolutionInfo这个类是DLL里的类,可是我定义一个接口,就可以把这上类作为属性,这是为何了?

...全文
146 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tigerleq 2024-10-18
  • 打赏
  • 举报
回复

没有继承实现接口,如果是,通用的,可以在基类里实现接口,不然,就一个类里面 同时 继承接口 和基类

wanghui0380 2024-07-24
  • 打赏
  • 举报
回复

请检查最上面的using HTVision.Service.Models,如果有这个你担心啥。你既然能using到就是能用。

话说别操心了,正常的。要是你不能引入别dll的类型。net还砸玩? 微软自己写的那些 system.io.path,FileInfo 也是dll,也是class啊。
不能使用net还怎么写代码?

  • 举报
回复
@wanghui0380 我的意思是,用DLL里的类直接用new,可他这里直接用DLL里的类名作为接口属性,如果我这里不是接口是一个类,那它可以作为类的属性吗,这与接口是不是有点关系
wanghui0380 2024-07-26
  • 举报
回复 1
@那该多好啊!!! 额,类型是类型,实例是实例。微软不是一小心就“诅咒”你“该对象不存在或没有实例化”么?他很少说“该类型不存在”把,顶多说“XXX类型不能转换为YYY类型” 你这里用的是类型,不是实例。实例还得另外有人new给你。

111,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧