2009/08/12

[C#]名前空間の外にクラスを定義する

というようなことができるということだったので、やってみた。

使いどころは思いつかない。

 

download - GlobalNamespaceClasss

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

 

namespace Sample.GlobalNamespaceClass
{
    class Program
    {
        static void Main(string[] args)
        {
            new GlobalClass<string>("hello").Print(
                s => { Console.WriteLine(s); return s; });
        }
    }
}

 

//グローバル名前空間に定義されたクラス(名前空間の指定無し)
public class GlobalClass<T>
{
    private T val;

 

    public T Value
    {
        get
        {
            return this.val;
        }
    }

 

    public GlobalClass(T val)
    {
        this.val = val;
    }

 

    public T Print(Func<T, T> printer)
    {
        return printer(this.val);
    }
}

0 件のコメント:

コメントを投稿