这是一个VB.Net新手问题。我对于声明和定义变量的不同方式感到困惑。
这是example:
Dim URL As String = http://www.c-sharpcorner.com/default.asp
Dim request As HttpWebRequest = WebRequest.Create(URL)
Dim response As HttpWebResponse = request.GetResponse()
Dim reader As StreamReader = New StreamReader(response.GetResponseStream())
我何时应该使用1. nothing,2。调用Create()方法,3。调用Create()之外的另一个方法,然后使用New word?
答案 0 :(得分:0)
.Net中的大多数原始类型(Int32,String等)都有一个文字语法,允许您声明一个新实例。如果有的话,应该是你的第一选择。您上面的URL变量就是一个例子。
您的下一个选择可能是New关键字。在设计时已知要尝试实例化的类型,这很好。例如,如果您只是尝试实例化实现接口的类型的实例但不关心返回的对象的具体类型,则可能不适用。
在这种情况下您可以使用的设计模式(在设计时未知类型)是Factory Method。初始化Factory方法的方式可以影响它返回的对象的类型。
如果一个类没有外部可见的构造函数,那么可能是因为该类的开发人员想要保留在运行时决定他将返回哪种类型的权利。在这种情况下,他通常会提供一个工厂方法(按照惯例以“创建”关键字为前缀)。该方法不一定在您尝试实例化的类上,但可能会添加到API中的其他类中,该类具有首先要确定要返回哪个具体类所需的上下文,其次具有提供的能力创建对象所必需的依赖项。
总之,您的决策路径应该是......
有趣的是 - DateTime数据类型是VB.Net具有文字语法而C#没有的情况。 1999年5月31日可以使用语法#5/31/1993#
在VB.Net中实例化为DateTime对象。要在C#中实例化相同的日期值,需要使用构造函数new DateTime(1999, 5, 31)
。