7 c# vb.net alias vba using-directives
基础参考:VBA,Visual Basic .NET和C#的十个代码转换
注意:我已经创建并导入了一个*.dll
,这个问题是关于 别名的.
假设一个Test
类的程序化名称是TestNameSpace.Test
[ProgId("TestNamespace.Test")]
public class Test ...
Run Code Online (Sandbox Code Playgroud)
现在,假设一个C#解决方案已被密封并编译成一个*.dll
,我在Excel的VBE中引用它.注意:此时我无法修改程序名称,就好像它*.dll
不是由我编写的.
这是VBA
:而不是像这样声明一个变量:
Dim myTest As TestNameSpace.Test
Set myTest = new TestNameSpace.Test
Run Code Online (Sandbox Code Playgroud)
我更喜欢称之为(仍在VBE中)
Dim myTest As Test
Set myText = new Test
Run Code Online (Sandbox Code Playgroud)
在C#中你通常会说
using newNameForTest = TestNamespace.Test;
newNameForTest myTest = new NewNameForTest;
Run Code Online (Sandbox Code Playgroud)
注意:假设有没有命名空间冲突的VBA
项目
问:是否有一个等价的调用VBA
来C#
using
或VB.NET
imports
别名?
小智 3
答案是否定的:有一个内置的 VBE 功能,可以识别添加到项目中的引用,并在运行时(VBE 的运行时)创建别名(如果没有名称冲突)
如果注册表中出现名称冲突,所有.
点都将替换为_
下划线。
»ProgId
的 (编程标识符)
在COM中,它仅用于后期绑定。这就是调用创建新对象的方式
Dim myObj = CreateObject("TestNamespace.Test")
Run Code Online (Sandbox Code Playgroud)
“EarlyBinding
和LateBinding
在早期绑定中,您可以使用关键字指定要创建的对象的类型new
。您的对象的名称应该随 VBA 的智能感知一起弹出。它与 无关ProgId
。要检索用于您的对象类型的实际命名空间 - 打开Object Explorer
F2并在那里找到它
本文解释了早期绑定部分中名称的来源,使用与何时使用后期绑定
相同的链接
有关 MSDN 编程标识符部分,请参阅此
归档时间: |
|
查看次数: |
6104 次 |
最近记录: |