ベース基準の作成:Ten Code Conversions for VBA, Visual Basic .NET, and C#
VBA /別名に
注:私はすでに作成して*.dll
を輸入しているが、この質問を約エイリアスです。
*.dll
にコンパイルされ、私はExcelのVBEでそれを参照していますされていると言う、のは
Test
クラスのプログラム名は、今
TestNameSpace.Test
[ProgId("TestNamespace.Test")]
public class Test ...
あるとしましょう。注:この時点で私は*.dll
が私によって書かれていないかのようにプログラム名を変更することはできません。 C#ので
Dim myTest As TestNameSpace.Test
Set myTest = new TestNameSpace.Test
私は(VBEではまだ)それを呼び出すことを好むだろう
Dim myTest As Test
Set myText = new Test
あなたはなります
これはVBA
にあります。その代わり、このような変数を宣言する通常は
using newNameForTest = TestNamespace.Test;
newNameForTest myTest = new NewNameForTest;
注:C#
using
またはVB.NET
imports
別名にVBA
で同等の通話があり:は、名前空間がVBA
プロジェクト
質問にを競合しないがあると仮定?
なぜ誤解を参照してください?名前空間で継承するものは何ですか?名前空間はすべてを適切に分類する方法です。継承は、所与のオブジェクトの定義をスピードアップする(例えば、この他のオブジェクトからすべての情報を取り出す)ために使用されるアプローチである。継承は輸入とは関係ありません。 – varocarbas
私が提供したリンクの1つでは、この人は名前空間をエミュレートする方法を提案しています。私はあなたが何かを考え出すことができないと言っているわけではありません。最長の名前がちょうど2つの単語で構成されている場合、ショートネームの組み込み機能を実装するのはあまり意味がありませんでした。 – varocarbas
ああ、多分私は私のコメントに不明でした。 VBEには、Application.ThisWorkbook.Sheets( "Sheet1") 'の代わりに'( "Sheet1") 'と言うことができる*隠れたビルトイン機能があります。次に、すべての要素(ドットの右側)がその親クラス(左側)から継承する方法について考えてみましょう。これは組み込みの機能なので、それは封印されているため、独自のクラスを作成し、メンバでも同様の方法で呼び出すことはできません。クラスClass1.Class2.ClassNmへのフルパスを指定する必要がありますが、VBEは名前空間を作成しません。これは私の最初のコメントを理解するのに役立つのですか? –