Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.NET导入类_Vb.net_Import - Fatal编程技术网

VB.NET导入类

VB.NET导入类,vb.net,import,Vb.net,Import,我见过一些代码,其中导入了一个类,而不是名称空间,从而使该类的所有静态成员/方法都可用。这是VB的一个特性吗?或者其他语言也能做到这一点 TestClass.vb public class TestClass public shared function Somefunc() as Boolean return true end function end class MainClass.vb imports TestClass public class Mai

我见过一些代码,其中导入了一个类,而不是名称空间,从而使该类的所有静态成员/方法都可用。这是VB的一个特性吗?或者其他语言也能做到这一点

TestClass.vb

public class TestClass
    public shared function Somefunc() as Boolean
        return true
    end function
end class
MainClass.vb

imports TestClass

public class MainClass
    public sub Main()
        Somefunc()
    end sub
end class

这些文件位于App_代码目录中。只是好奇,因为我以前从来没有想过这样做,也没有在任何地方读到过

实际上,该函数是可用的,因为它是一个函数。如果要删除共享修饰符,仍然需要创建类的实例才能访问它

要在默认情况下访问类中的所有变量和所有函数,您需要继承它

据我所知,类基本上是直接引用它,而不是创建任何类型的实例供您使用


为清晰起见进行编辑:这些链接是特定于VB的链接,因此,解释了与VB.NET相关的此功能是的,它是一个。虽然可以使用创建别名,但似乎无法将共享类导入范围。老实说,我只在已经使用过它的遗留项目中使用过一次。我看到了一些价值,但我担心这对代码的未来可维护性可能弊大于利

使用此功能的原因之一是模拟Visual Basic 6.0的GlobalMultiUse选项进行实例化。Visual Basic 6.0无法跨DLL边界公开模块。而是将实例化属性设置为
GlobalMultiUse
。它主要用于实用类,如导出一系列数学函数的类

每次使用
GlobalMultiUse instanceing
对类调用子例程或函数时,Visual Basic 6.0都会在调用函数之前在幕后实例化一个类


它可以被滥用来生成具有所有优点和缺点的全局函数/变量。

每当我大量使用同一个库时,我都会使用它。一个很好的例子是System.Math

C#不支持这个,我觉得这很烦人。

等等,等等

今天早上我发现我们可以派生任何类中的所有对象(class-s) 需要使用此方法/函数的引用

Protected Overrides Sub Finalize()
    MyBase.Finalize()
End Sub

这和这个问题有什么关系?这也没有任何意义。这与派生类无关,仅仅为了调用基类而重写方法是毫无意义的。