弱弱地问问:C#的类如何实现接口与实现分离呀?

问题描述

就像C++那样?俺是初学者,看到现在好像都是在定义一个类的时候提供它的实现(除非是虚类),好像没有在一个文件定义一个类的各个方法的声明、在另一个方法中实现各个方法的例子。如果是这样的话,类的实现都让大家看到了,还怎么实现informationhiding呀?

解决方案

解决方案二:
.net中编程的“接口”,叫做interface。而不是class。你肯定是只看到后者了。
解决方案三:
除了interface,还有abstractclass,等等。.net的dll、exe本身就包含组件的元信息,可以直接被其它.net程序访问到、using到,不需要单独一个.h文件。而且.h文件并不是什么“informationhiding”的屌丝目的,而是因为没有它就根本无法正确地引用、链接。对于基于VM的系统,所谓“informationhiding”也没有多大用处,因为编译出来的dll、exe中的代码也是非常高级的、比较容易读懂的语言(当然,如果你使用Linq等等有lamda等等高度自动化特征的编程方式,反编译的东西就不容易被读懂;如果你源代码写得非常简单,那么反编译出来的东西基本上就是源代码)。何况你有.h文件,也不是不给人家.exe、.dll文件的。所以.h文件本身不能说明什么“informationhiding”,而是.dll、.exe文件本身的反编译性才能说明“informationhiding”。真正的网络化是物理隔离的,比如说你从淘宝客户端,是看不到人家背后的几万台服务器里边的源代码的。这是通过架构来真正进行分层。
解决方案四:
.h文件,也不是不给人家.exe、.dll文件的-->.h文件,也不是不给人家.exe、.dll文件用来隐藏内容的分离出来这个文件的目的,不是为了“informationhiding”。你不给人部署你的.dll、.exe才能真正hiding。
解决方案五:
信息隐藏原则:1多层设计中的层与层之间加入接口层;2所有类与类之间都通过接口类访问;3类的所有数据成员都是private,所有访问都是通过访问函数实现的
解决方案六:
用partialclass啊,可以把不同的代码分散在不同的源代码中。
解决方案七:
C#接口就是这么用的啊,接口定义里只有方法名,实现了接口的类中的方法,才有这个接口的具体实现

时间: 2024-08-03 19:44:07

弱弱地问问:C#的类如何实现接口与实现分离呀?的相关文章

弱弱的问一下:电脑上安装了.NET FRAMEWORK 后,是不是即使不安装VS,Console等类的代码也在电脑里了??

问题描述 弱弱的问一下:电脑上安装了.NETFRAMEWORK后,是不是即使不安装VS,有关的类(比如Console类)的代码也已经随着.NETFRAMEWORK的安装而在电脑里了?? 解决方案 解决方案二:代码??装了vs也没有吧?dll是有的解决方案三:是在框架的dll中解决方案四:VS只是IDE工具,不是环境--Frame包含了微软自己提供的dll解决方案五:是的.解决方案六:.NETFRAMEWORK中只有运行库如要做开发还需安装.NETSDK解决方案七:是的,你可以安装好VS后把这些引

关于南京外包公司的面试题目……偶要去笔试啊,弱弱的

问题描述 下周就要去面试了,说了是先来个笔试再面试,弱弱的问问--笔试题一般都是些什么题目啊?分别是文思.上海易保和软通动力--大家给点意见啊 解决方案 解决方案二:网上找一下呗解决方案三:基础题编程题智力题就这

弱弱地问一下:opencv都可以调用普通的免驱笔记本外接摄像头吗?

问题描述 弱弱地问一下:opencv都可以调用普通的免驱笔记本外接摄像头吗? 如题~直接cvCaptureFromCAM....巴拉巴拉就可以直接调用了吗(想买个笔记本外接摄像头) 解决方案 看看这个能不能用到,http://blog.sina.com.cn/s/blog_4a189c920101cm8v.html

弱弱地问一下:可以用电脑opencv编程,用手机做摄像头来识别物体吗?

问题描述 弱弱地问一下:可以用电脑opencv编程,用手机做摄像头来识别物体吗? 大致有哪几模块或步骤(手机仅仅做摄像头,需要在安卓手机上编程吗)?谢谢大神们 解决方案 参考:http://jingyan.baidu.com/article/1876c852d587a9890b1376a3.html

if else if-关于if-else if。菜菜鸟弱弱的提问

问题描述 关于if-else if.菜菜鸟弱弱的提问 Console.WriteLine("你的年龄为?"); int age = Convert.ToInt32(Console.ReadLine()); if (age >= 18) { Console.WriteLine("你可以查看有关内容."); } else if (age < 10) { Console.WriteLine("抱歉,你不能查看相关内容."); } else

c语言-java小宝宝请教一个弱弱的问题。还请留步指教。

问题描述 java小宝宝请教一个弱弱的问题.还请留步指教. 各位高人,本人新手一枚.自己写的十六进制转化为十进制.有一点瑕疵就是,当提示输入一个数的时候,如果我什么都不输入,直接按enter(回车),程序就会陷入死循环,不能动了,只能Ctrl +c退出,搞不懂为什么,作为处女座,很难受. 自己琢磨了好久没琢磨出来.还请大大们指教指教,不胜感激. import java.util.Scanner; public class Test{ public static void main(String

弱弱问下:asp:Button如何设置背景。

问题描述 弱弱问下:asp:Button如何设置背景.(C#) 解决方案 解决方案二:你用CSS写个你想要设置的背景,,然后在asp:Button的CssClass属性里面把你这css的名字填进去就可以了.解决方案三:好像有时候背景色要先设置透明解决方案四:换成ImageButton解决方案五:<buttonid="btn"name="mybtn"style="background:******"></button>这样就

css 问题 a 标签 弱弱的问题

问题描述 css 问题 a 标签 弱弱的问题 a:link{font-size:50px} a:visited{font-size:100px;color:yellow} 这个访问过后 颜色变了 但是字体没变 还是50PX 是为什么 解决方案 这个还得看你整个的页面布局才知道具体情况 解决方案二: 很可能是优先级的问题,100px的css优先级较低被覆盖掉了,f12自己查下.

小菜鸟弱弱的问一句怎么在Microsoft Visual Studio 2010的form中的属性写事件啊?

问题描述 小菜鸟弱弱的问一句怎么在MicrosoftVisualStudio2010的form中的属性写事件啊?[img=http://b151.photo.store.qq.com/psb?/bfc51046-87e3-466f-b460-4730d42a104e/AmFVoa36OQhaKLSNbCVTQKU1ZIuT.nWqyYV*BAtxSnk!/b/YV5XAlrlNwAAYgICDVqaPQAA][/img]我想在我拖动外面的窗体的时候,里面的ListView的大小跟着一起变大变小怎