【发布时间】:2014-02-19 17:25:08
【问题描述】:
我是一名学生,开始在 VB.Net 中开发一些项目,我非常喜欢它。但是,我向一些同事提出了这个问题,他们无法回答。甚至我的老师也无法弄清楚 VB 和 .Net 到底是什么。我检查了this question here,但即使是接受的答案也让我有些怀疑。
例如这里的这段代码
Class Example
Private _value As Integer
Public Sub New()
_value = 2
End Sub
Public Function Value() As Integer
Return _value * 2
End Function
End Class
Module Module1
Sub Main()
Dim x As Example = New Example()
Console.WriteLine(x.Value())
End Sub
End Module
语言如何与框架分离?我知道语言是语法,但框架在哪里?
我读过框架包含库:库到底是什么?语言(语法和所有)我可以看到它,它可以看到,但是框架也可见吗?如果有,在哪里?
所以在 VB.Net 应用程序中,当我查看代码时,我只能看到 VB:C#.Net 应用程序也是如此。
也许是愚蠢的例子:例如,要使汽车发挥作用,所有部件都必须良好——从轮胎到引擎盖、发动机、燃料——但所有这些都是可见的,而从外部我们可以看到。看不到内部运行的油或燃料或活塞的工作,如果我们愿意,我们可以看到它们。
查看 VB/C# .Net 应用程序时是否可以查看所有组件?我的意思是,看代码并清楚区分什么是VB或C#和.Net?
谢谢
【问题讨论】:
-
那个示例并没有充分利用 NET 框架 -
console.writeline是一个 NET Class.method(Integer也是一个网络Type)。其他人是String.Split, Convert.ToInt32 or myCollection.Contains()。所有框架部分都在对象浏览器中可见(F2 - 没有它就不要离开家) -
那么,那些方法不是 VB/C#?
-
否 - 它们可通过 NET 用于 VB/C#,但不属于语言规范。 F2 将向您显示哪些 NameSpace 内容来自。 VB 特定的东西是
Select Casevs C#switch或IF/THEN/ELSEvsif(){...}。这似乎很模糊,因为像System这样的东西为两者提供了很多相同的东西(比如Int32)。 -
这些是语法差异,我知道。
string.split或collection.contains()之类的方法是否为 VB、C# 以及使用 .Net 框架的任何其他语言编写的相同方式? -
它不仅仅是语法,它是语言。 VB 不知道
switch来自字符串的表单。 NET 中的类型和方法对于任何 NET 语言都是相同的(VB 与其他任何东西都没有单独的字符串类型或字符串方法)。
标签: vb.net frameworks programming-languages