いろいろガンガンいこうぜ。体も大事に

普段はJavaでAndroidアプリ開発しているプログラマーのブログです。

C#とJavaのHello worldを見比べて。

JavaHello worldと,

package com.mrstar;

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}

C#Hello world

using System;

namespace HelloCSWorld
{
	class MainClass
	{
		public static void Main (string[] args)
		{
			Console.WriteLine ("Hello World!");
		}
	}
}

見比べて思ったこと。





中括弧「{」の位置にすごい違和感が...

業務では,JavaAndroidを開発していて,
コントリビューター用のコーディングスタイルですが,
Code Style Guidelines for Contributors
http://source.android.com/source/code-style.html#use-standard-brace-style
に沿うようなスタイルで開発しています。
このスタイルでは,中括弧は改行していません。
(上記のページのBrace Style参照)


一方で,C#の手元にある参考書は全て中括弧は「{」で改行していました。
Visual StudioC#コーディング規則でも,中括弧を改行する形式で書かれていました。
http://msdn.microsoft.com/ja-jp/library/vstudio/ff926074.aspx


中括弧
違和感ありまくり。


まぁ書いているうちになれるか。



Pascal形式なメソッド名にも違和感...

これも,違和感が
「えっ,クラス?」とか思ってしまう。
これもそのうち慣れるか。



namespace

Javaのpackageに該当するのかな?
C#のnamespaceはJavaのpackageと違って,
ソースコードの物理パスとか考えなくていいんですね。
それから,ファイル名とクラス名が一致する必要も無いんですね。


下記のソースコードみたいに,
一つのファイルに,複数のnamespaceも定義出来れば,
namespace入れ子による階層化も出来れば,
.による階層化も出来るみたいですね。
でも,単一ファイルでこんなに定義はしないか。

using System;

namespace HelloCSWorld
{
	class MainClass
	{
		public static void Main (string[] args)
		{
			NameSpaceA.Util.ShowMessage();
			NameSpaceB.Util.ShowMessage();
			NameSpaceA.Sub.Util.ShowMessage();
			NameSpaceB.Sub.Util.ShowMessage();
		}
	}
}


namespace NameSpaceA
{
	class Util
	{
		public static void ShowMessage ()
		{
			Console.WriteLine("NameSpaceA.Util");
		}
	}

	namespace Sub
	{
		class Util
		{
			public static void ShowMessage ()
			{
				Console.WriteLine("NameSpaceA.Sub.Util");
			}
		}
	}
}

namespace NameSpaceB
{
	class Util
	{
		public static void ShowMessage ()
		{
			Console.WriteLine("NameSpaceB.Util");
		}
	}
}

namespace NameSpaceB.Sub
{
	class Util
	{
		public static void ShowMessage ()
		{
			Console.WriteLine("NameSpaceB.Sub.Util");
		}
	}
}


そういえば,もう何年前かは忘れたけど初めてJavaをやったころ
クラス名を変えたんだけど,
ファイル名を変え忘れて
はまったことを思い出しました。





以上です。
それでは,また会えることを祈りつつ。