2012年10月04日

C#。恐るべし!!

お久しぶりです。みやじーです。
最近C#の勉強を始めました。

近頃ではC#でゲームを作るというケースも増えてきていると思います。
C/C++と比べて実行速度が・・・メモリ使用量が・・・という意見もありますが・・
何と言っても"楽ちん"というメリットが非常に大きいですグッド(上向き矢印)

ツールを作る上で必要な、いろいろなクラスが用意されており、
一度慣れるともうC/C++には戻れないとさえ感じてしまうほどですたらーっ(汗)
中でも"PropertyGrid"というクラスを紹介したいのですが、、
自作のクラスでも、プロパティの編集が可能になるという優れもののクラスがあります。
これを、一からC/C++で実装するとなると非常に困難です。
ツールを作成する上で大活躍すると思います。
これでツール作成の敷居はぐーーんと下がるはずです手(チョキ)
皆さんも使用してみてはいかがでしょうか?

(使用例)

static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);

Test test = new Test();

PropertyGrid propertyGrid = new PropertyGrid();
propertyGrid.SelectedObject = test;
propertyGrid.Dock = DockStyle.Fill;

Form form = new Form();
form.Controls.Add(propertyGrid);
Application.Run(form);
}
}

// 自作クラス
public class Test
{
private int _integer = 6;
private string _string = "Hexa Drive";
private bool _boolean = true;
private Color _color = Color.Orange;

public int Integer
{
get { return _integer; }
set { _integer = value; }
}
public string String
{
get { return _string; }
set { _string = value; }
}
public bool Boolean
{
get { return _boolean; }
set { _boolean = value; }
}
public Color Color
{
get { return _color; }
set { _color = value; }
}
}


たったこれだけのソースコードで・・・・


20121004_00.png
自作クラスが編集可能に!!

また、C#はクラス設計も非常に勉強になると思います。
自分は普段は余りnamespaceを活用してはいなかったのですが、
C#のSystem名前空間以下は、
namespaceを大いに活用した設計になっており、
非常に勉強になりますパンチ

また、C/C++には存在しない機能がいくつかありますが、
・何故、そのような機能が搭載されたのか?
・どのように使用すると便利なのか? 
・C/C++で同等の機能を実装しようとすると、どのような実装方法が考えられるのか?
等を考察してみるのも楽しいでするんるん

C#を勉強されている方も多いかと思いますが、
まだ、C#に触れた事がない方・・・exclamation
是非、 C#!! お勧めです。

posted by 管理人 at 17:21 | 日記