|
q9.问:为什么c#没象c 那样提供模板功能?
答:啊……啊……又来了,再说一遍好啦,模板其实应该是运行库提供的功能,不关c#语言的事。在c#中没有提供模板功能大致有两点原因。首先呢,执行模板有一定的困难,所以微软没打算在c#的第一版中提供这样的功能,以后的版本中会有类似的功能出现的。其次呢,因为这里的运行库是支持多语言的运行库(不仅仅是c#),假如在运行库中引入模板,就意味着所有使用这个运行库的语言都必须支持模板功能,在这一点上,微软不得不慎重考虑,所以也不打算现在就把模板加进去。
q10.问:在c#中会不会用真正的要害字换掉那些把atl和com搞得乱糟糟的伪要害字?象什么ole_color、bool、variant_bool、dispid_xxxxx什么的,烦都烦死了。 答:这个您放心,绝对要换!每种类型在.net类库中都有新名字了。
q11.问:我们现在看到了有限制程序的扩展和改善,除此以外,将来c 在ms或者.net中的地位又将如何?
答:c 语言在微软的各种语言中是最独特的一种,它也是唯一可以答应程序员开发无限制低级程序的语言。所以,我们经常可以看见程序员们用c 写性能要求较高的无限制的算法代码,同时也用c 编写有限制的安全程度很高的组件代码。我认为微软会继续保留c 的现状,并维持很长一段时间。究竟,驱动程序需要它,windows的基础也是它,很多产品也使用它。
q12.问:既然.net支持activex/com,那么如何才能保证一个运行在浏览器中的c#程序的安全性呢?
答:.net运行库提供了代码访问安全特性,它答应治理员和用户根据代码的id来配置安全等级。在缺省情况下,从internet和intranet下载的代码都不答应访问任何本地文件和资源。比方说,我写了个程序把它放到网络上,然后让它在网络上的共享目录中运行,假如它要访问我本地的一些资源,那么它将会无情地被异常扔出去,呵呵,当然,假如拷贝到本地硬盘上运行则一切正常。
q13.问:在我的机器上有c#程序,那么我是不是需要安装了.net运行库才能运行它?
答:对。所有的有限制程序都需要一个治理程序来限制它们;在这里,运行库就是治理程序。微软在以后将会把运行库打包起来免费分发,而现在最终用户必须从msdn上安装整个.net的sdk包才能运行c#。
q14.问:有人曾经提到过,c#的类可以从vb中声明的类中派生出来,是不是真的啊?哪里有这样的例子程序呢?
答:确实是真的。实际上,只要是使用运行库的语言,都可以做到在一种语言中声明类,而在另一种语言中派生类。并且,visual studio的调试器将会完全支持跨语言的程序调试,在函数堆栈调试窗口的每个条目中都会显示堆栈中的函数是什么以及它们分别用何种语言写成;另外,你甚至还可以跨语言地处理程序中的异常错误。这种特性确实棒极了,在pdc上演示这段功能的时候,大家都热烈地鼓起掌来。在.net的sdk中有例子程序演示其做法,十分简单。
q15.问:那能不能从c 类派生出c#类来呢?假如可以该怎么做?
答:上面提到过,假如你使用有限制的语言,那么自然就可以,不过要是你使用c 中无限制的部分,就不行了。
q16.问:新版本的mfc可以选择在限制环境下运行吗?
答:我平时没怎么眼球mfc,不过我可以确信答案是否定的。mfc从来都没有被限制过。对于限制程序,大家应该使用winforms来治理。
q17.问:假如新版的mfc能够在一个有限环境中运行,它是不是可以在不需要.net运行库的情况下建立win32桌面应用?
答:我敢肯定mfc不可能这样,并且它从来都不需要什么运行库。
q18.问:有人说“c#只是微软windows另一种特有语言罢了,其他平台是不能用的”,你同意这种说法吗?
答:c#是针对“通用语言运行库”(clr)而开发的,而不是针对windows。假如运行库被移植到其他系统上,那么c#也可以被移植到那里。
|
| 共3页: 上一页 [1] 2 [3] 下一页 |
评论加载中…