为什么需要此参考?

aw48

活跃成员
已加入
2013年2月9日
留言内容
35
地点
德国
编程经验
10+
你好,
有人可以解释以下问题:
我的dll1是class1。 dll1使用class2引用dll2。 class2有一个属性"public bool IsFolder"
class1有一个属性"public List<class2> Items"
我以一种形式引用dll1并有一个对象"class1 obj"
所以现在当我说"如果(obj.Items [0] .IsFolder)....."我收到一个编译错误,指出我的表单必须引用dll2,执行此操作后一切正常。
为什么我的表格必须了解dll2?
提前致谢
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,530
地点
弗吉尼亚州切萨皮克
编程经验
10+
由于您(或Class1的设计师)破产了 得墨meter耳定律,那么您必须付出代价。

If you go poking into the insides of class1 to access something in it, then the compiler needs to know about it (via adding a reference) because how else would it know if IsFolder is correct or not? What if your typed in IsAMoon or IsASpaceStation instead? Should the compiler just let it work?

C# is an early bound language (in general until you start playing with dynamic objects). This is different from late bound languages like JavaScript and VB6. Early bound languages need to know the details of things that you access at compile time. Late bound languages discover the details of things at run time.
 
Last edited:
最佳 底部