5 个解决方案
#1
AE开发的问题,类似这个
IWorkspaceFactory pworkspacefactory = new RasterWorkspaceFactory();
IWorkspace pworkspace = pworkspacefactory.OpenFromFile(pfilepath,0);
IWorkspaceFactory pworkspacefactory = new RasterWorkspaceFactory();
IWorkspace pworkspace = pworkspacefactory.OpenFromFile(pfilepath,0);
#2
在 C# 或者 VB 这样的语法里面, 你这种类似执行一个 QueryInterface 这样的方法来查询接口的。
所以和 C++ 里面不同的是,这里的赋值语句可能会抛出异常的。
而 C++ 里面的 赋值语句是不会抛出异常的。
所以和 C++ 里面不同的是,这里的赋值语句可能会抛出异常的。
而 C++ 里面的 赋值语句是不会抛出异常的。
#3
不懂,很正常
因为你想去理解臆想的描述,自然是不可能的
A a=new c()去实现A接口
这是实例化类 c,并把它当作 A 类型使用,这就意味着 c 中一定实现了 A 接口声明的方法
B b=a.方法(参数1)
表示 a.方法 返回了一个 B 类型的数据
与接口没有直接的关系
因为你想去理解臆想的描述,自然是不可能的
A a=new c()去实现A接口
这是实例化类 c,并把它当作 A 类型使用,这就意味着 c 中一定实现了 A 接口声明的方法
B b=a.方法(参数1)
表示 a.方法 返回了一个 B 类型的数据
与接口没有直接的关系
里氏替换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。
里氏替换原则中说,任何基类可以出现的地方,子类一定可以出现。
LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,
基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。
#4
一个类实现多个接口 返回不同的类型

#5
A a=new c()
和
B b=a.方法(参数1)
是两码事吧。
A a=new c() 代表 c是 A的派生类。
而B b=a.方法(参数1)只是说 A中有一个方法 会返回一个 b对象。但是不代表A和B有继承关系。
和
B b=a.方法(参数1)
是两码事吧。
A a=new c() 代表 c是 A的派生类。
而B b=a.方法(参数1)只是说 A中有一个方法 会返回一个 b对象。但是不代表A和B有继承关系。
#1
AE开发的问题,类似这个
IWorkspaceFactory pworkspacefactory = new RasterWorkspaceFactory();
IWorkspace pworkspace = pworkspacefactory.OpenFromFile(pfilepath,0);
IWorkspaceFactory pworkspacefactory = new RasterWorkspaceFactory();
IWorkspace pworkspace = pworkspacefactory.OpenFromFile(pfilepath,0);
#2
在 C# 或者 VB 这样的语法里面, 你这种类似执行一个 QueryInterface 这样的方法来查询接口的。
所以和 C++ 里面不同的是,这里的赋值语句可能会抛出异常的。
而 C++ 里面的 赋值语句是不会抛出异常的。
所以和 C++ 里面不同的是,这里的赋值语句可能会抛出异常的。
而 C++ 里面的 赋值语句是不会抛出异常的。
#3
不懂,很正常
因为你想去理解臆想的描述,自然是不可能的
A a=new c()去实现A接口
这是实例化类 c,并把它当作 A 类型使用,这就意味着 c 中一定实现了 A 接口声明的方法
B b=a.方法(参数1)
表示 a.方法 返回了一个 B 类型的数据
与接口没有直接的关系
因为你想去理解臆想的描述,自然是不可能的
A a=new c()去实现A接口
这是实例化类 c,并把它当作 A 类型使用,这就意味着 c 中一定实现了 A 接口声明的方法
B b=a.方法(参数1)
表示 a.方法 返回了一个 B 类型的数据
与接口没有直接的关系
里氏替换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。
里氏替换原则中说,任何基类可以出现的地方,子类一定可以出现。
LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,
基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。
#4
一个类实现多个接口 返回不同的类型

#5
A a=new c()
和
B b=a.方法(参数1)
是两码事吧。
A a=new c() 代表 c是 A的派生类。
而B b=a.方法(参数1)只是说 A中有一个方法 会返回一个 b对象。但是不代表A和B有继承关系。
和
B b=a.方法(参数1)
是两码事吧。
A a=new c() 代表 c是 A的派生类。
而B b=a.方法(参数1)只是说 A中有一个方法 会返回一个 b对象。但是不代表A和B有继承关系。