ナビゲーション リンクのスキップトップページ > C#プログラミング > ch2-1-1 継承とインスタンス
▼ ch2-1-1 参照とアセンブリ ▼

  参照はマネージEXEからも可能ですが、通常はマネージDLL(アセンブリ)が利用されます。例えばGUI関連に利用される「system.windows.forms.dll」等は身近な例でしょう。ご周知かも知れませんが、DLLは単体で動作させる事は出来ず、特定の機能をパーツ化し複数のアプリケーションへ機能を提供する事が役割です。

  また、パーツ化する事によってバグ修正時に実行可能ファイルを丸ごと置き換える必要性が無くなり効率的です。基本的にはメリットが大きいのでアンマネージ時代から一般的に用いられており定着していますが、以下のサンプルのように細分化させすぎた場合は逆にマイナス要素が格段に強くなりますので、利用法解説以外でこんなコードはご法度です。

1: ライブラリから「こんにちは」

♣ Message.cs → Message.dll

using System;
using System.Windows.Forms;

namespace FoopahLibrary
{
    // 参照させるものは外部から見えるようにしましょう。
    public class Message
    {
        public void Hello()
        {
            MessageBox.Show("Hello World!");
        }
    }

    // 外部からは見えてはいけない物は隠しましょう。
    private class YouCantLookMe
    {
        public void InternalHello()
        {
            MessageBox.Show("Hello World!");
        }
    }
}

♣ Greeting.cs → Greeting.exe

using System;
using FoopahLibrary;

namespace Executive
{
    class Greeting
    {
        static void Main()
        {
            Message mes = new Message();
            mes.Message();
        }
    }
}

【参考:コマンドラインからコンパイル】
1. Message.csをコンパイル。[csc /t:library Message.cs]
2. Greering.exeでMessage.dllを参照。[csc /reference:message.dll Greeting.cs]


  コマンドラインからのコンパイルはサンプルにもあるように /reference や /t 等のコンパイラオプションを利用して行ないます。GUIが一般的な現在においてコマンドラインは冗長的に思えるかもしれませんが、コードの断片を試しに実行する場合などはVisual Studio等の巨大な統合開発環境(IDE)を実行させるよりむしろ効率的な方法です。

  最後に、このようにアセンブリ等を作成する場合アクセサビリティレベルが重要に成ります。例えば外部に公開されてはいけないメソッドに、publicを使ったり、公開されるべきメソッドにprivateを使うのは間違いです。アクセシビリティレベルやコマンドラインオプションについては詳しく別の記事で取り扱いますので、そちらをご参照ください。

Continue
ナビゲーション リンクのスキップトップページ > C#プログラミング > ch2-1-1 継承とインスタンス

テスト[1]
♥ 2010年03月07日 16:36:41 UPD!

情報オリンピック[2]
♥ 2009年07月04日 13:39:15

2008年ですね。[1]
♥ 2008年01月01日 00:00:00

自由なスレ[3]
♥ 2007年09月22日 20:51:58

2007年ですね。[1]
♥ 2007年01月01日 00:00:00


RSS : FooPah!の更新情報
RSS : 掲示板全体の投稿情報
Copyright(C)2001-2009 FooPah!, All rights reserved.