「C#とは」の編集履歴(バックアップ)一覧はこちら
C#とは - (2009/12/10 (木) 19:18:24) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
C#(シーシャープ)は、Microsoftが開発した、.NET構想の中核となるオブジェクト指向プログラミング言語です。
&bold(){目次}
#contents()
*公開時期
2000年
*概要
-Microsoftが開発した、.NET構想の中核となるオブジェクト指向プログラミング言語
-C#のコードはコンパイラにより中間言語MSIL(MicroSoft Intermediate Language)に変換される&br()実行時にはMSILが仮想マシンCLR(Common Language Runtime)上にて実行される
-Delphiの開発者アンダース ヘルスバーグがチーフ・アーキテクトとして参加
-国際標準化機関のEcma International、ISOや、日本工業規格JISにおいて標準規格化
-C#はC++をさらに進めたC++++から来ている&br()開発中はCOOL(C like Object Oriented Language:Cライクなオブジェクト指向言語)と呼ばれていた
*言語仕様
**クラスの宣言
#highlight(csharp){{
class MyClass
{
}
}}
**クラスの継承
#highlight(csharp){{
class SuperClass
{
}
class MyClass : SuperClass
{
}
}}
**抽象クラス
#highlight(csharp){{
abstract class AbstractClass
{
}
class MyClass : AbstractClass
{
}
class MainClass
{
static void Main(string[] args)
{
MyClass myclass1 = new MyClass();
// 次の行はコンパイルエラーとなる。
// AbstractClass abstractClass1 = new AbstractClass();
}
}
}}
**継承不可のクラス
#highlight(csharp){{
sealed class SealedClass
{
}
// 以下はコンパイルエラーとなる。
// class MyClass : SealedClass
// {
// }
}}
**基本クラスの参照
#highlight(csharp){{
class SuperClass
{
public void Method()
{
}
}
class MyClass : SuperClass
{
private void MyMethod()
{
base.Method();
}
}
}}
**クラス自身の参照
#highlight(csharp){{
class MyClass
{
private void MyMethod1()
{
this.MyMethod2();
}
private void MyMethod2()
{
}
}
}}
**オブジェクトの生成
#highlight(csharp){{
class MyClass
{
}
class MainClass
{
static void Main(string[] args)
{
MyClass myClass1 = new MyClass();
}
}
}}
**オブジェクトの初期化(コンストラクタ)
#highlight(csharp){{
class MyClass
{
public MyClass()
{
}
}
}}
**インターフェイスの宣言
#highlight(csharp){{
interface IInterface
{
}
}}
**実装するインターフェイスの指定
#highlight(csharp){{
class MyClass : IInterface
{
}
}}
**列挙型の宣言
#highlight(csharp){{
enum Days
{
Mon,
Tue,
Wed,
Thu,
Fri,
Sat,
Sun
}
}}
**フィールドの宣言
#highlight(csharp){{
class MyClass
{
//変数の宣言
int a;
//定数の宣言
const int b = 1;
//readonlyの宣言
readonly int c = 2;
}
}}
**1次元配列の宣言
#highlight(csharp){{
class MyClass
{
//初期化なし
int[] a = new int[2];
//初期化あり
int[] b = new int[] { 1, 2 };
}
}}
**2次元配列の宣言
#highlight(csharp){{
class MyClass
{
//初期化なし
int[,] a = new int[2, 2];
//初期化あり
int[,] b = new int[,] { { 1, 2 }, { 3, 4 } };
}
}}
**プロパティの宣言
#highlight(csharp){{
class MyClass
{
private int myVar;
public int MyProperty
{
get
{
return myVar;
}
set
{
myVar = value;
}
}
}
}}
**メソッドの宣言
#highlight(csharp){{
class MyClass
{
public void MyMethod()
{
}
}
}}
**メソッドのオーバーライド
#highlight(csharp){{
class SuperClass
{
public virtual void Method()
{
}
}
class MyClass : SuperClass
{
public override void Method()
{
}
}
}}
**メソッドのオーバーロード
#highlight(csharp){{
class MyClass
{
public void MyMethod(int x)
{
}
public void MyMethod(int x, int y)
{
}
}
}}
**例外処理
#highlight(csharp){{
static void Main()
{
try
{
//例外の発生する可能性のある処理
}
catch
{
//例外時の処理
}
finally
{
//例外の有無に関わらず実行させる処理
}
}
}}
**デリゲート
#highlight(csharp){{
delegate void MyDelegate();
public class MyClass
{
static void Main()
{
MyDelegate myDelegate;
//デリゲートにメソッドMethod1の参照を代入
myDelegate = new MyDelegate(Method1);
//省略して記述も可能
//myDelegate = Method1;
//デリゲートにメソッドMethod2の参照を追加
myDelegate += new MyDelegate(Method2);
//省略して記述も可能
//myDelegate += Method2;
myDelegate();
}
static void Method1()
{
}
static void Method2()
{
}
}
}}
**名前空間
#highlight(csharp){{
// N1
namespace N1
{
// N1.C1
class C1
{
}
//N1.N2
namespace N2
{
//N1.N2.C2
class C2
{
}
}
}
}}
C#(シーシャープ)は、Microsoftが開発した、.NET構想の中核となるオブジェクト指向プログラミング言語です。
&bold(){目次}
#contents()
*公開時期
2000年
*概要
-Microsoftが開発した、.NET構想の中核となるオブジェクト指向プログラミング言語
-Delphiの開発者アンダース ヘルスバーグがチーフ・アーキテクトとして参加
-国際標準化機関のEcma International、ISOや、日本工業規格JISにおいて標準規格化
-C#のコードはコンパイラにより中間言語MSIL(MicroSoft Intermediate Language)に変換される&br()実行時にはMSILが仮想マシンCLR(Common Language Runtime)上にて実行される
-C#はC++をさらに進めたC++++から来ている&br()開発中はCOOL(C like Object Oriented Language:Cライクなオブジェクト指向言語)と呼ばれていた
*言語仕様
**クラスの宣言
#highlight(csharp){{
class MyClass
{
}
}}
**クラスの継承
#highlight(csharp){{
class SuperClass
{
}
class MyClass : SuperClass
{
}
}}
**抽象クラス
#highlight(csharp){{
abstract class AbstractClass
{
}
class MyClass : AbstractClass
{
}
class MainClass
{
static void Main(string[] args)
{
MyClass myclass1 = new MyClass();
// 次の行はコンパイルエラーとなる。
// AbstractClass abstractClass1 = new AbstractClass();
}
}
}}
**継承不可のクラス
#highlight(csharp){{
sealed class SealedClass
{
}
// 以下はコンパイルエラーとなる。
// class MyClass : SealedClass
// {
// }
}}
**基本クラスの参照
#highlight(csharp){{
class SuperClass
{
public void Method()
{
}
}
class MyClass : SuperClass
{
private void MyMethod()
{
base.Method();
}
}
}}
**クラス自身の参照
#highlight(csharp){{
class MyClass
{
private void MyMethod1()
{
this.MyMethod2();
}
private void MyMethod2()
{
}
}
}}
**オブジェクトの生成
#highlight(csharp){{
class MyClass
{
}
class MainClass
{
static void Main(string[] args)
{
MyClass myClass1 = new MyClass();
}
}
}}
**オブジェクトの初期化(コンストラクタ)
#highlight(csharp){{
class MyClass
{
public MyClass()
{
}
}
}}
**インターフェイスの宣言
#highlight(csharp){{
interface IInterface
{
}
}}
**実装するインターフェイスの指定
#highlight(csharp){{
class MyClass : IInterface
{
}
}}
**列挙型の宣言
#highlight(csharp){{
enum Days
{
Mon,
Tue,
Wed,
Thu,
Fri,
Sat,
Sun
}
}}
**フィールドの宣言
#highlight(csharp){{
class MyClass
{
//変数の宣言
int a;
//定数の宣言
const int b = 1;
//readonlyの宣言
readonly int c = 2;
}
}}
**1次元配列の宣言
#highlight(csharp){{
class MyClass
{
//初期化なし
int[] a = new int[2];
//初期化あり
int[] b = new int[] { 1, 2 };
}
}}
**2次元配列の宣言
#highlight(csharp){{
class MyClass
{
//初期化なし
int[,] a = new int[2, 2];
//初期化あり
int[,] b = new int[,] { { 1, 2 }, { 3, 4 } };
}
}}
**プロパティの宣言
#highlight(csharp){{
class MyClass
{
private int myVar;
public int MyProperty
{
get
{
return myVar;
}
set
{
myVar = value;
}
}
}
}}
**メソッドの宣言
#highlight(csharp){{
class MyClass
{
public void MyMethod()
{
}
}
}}
**メソッドのオーバーライド
#highlight(csharp){{
class SuperClass
{
public virtual void Method()
{
}
}
class MyClass : SuperClass
{
public override void Method()
{
}
}
}}
**メソッドのオーバーロード
#highlight(csharp){{
class MyClass
{
public void MyMethod(int x)
{
}
public void MyMethod(int x, int y)
{
}
}
}}
**例外処理
#highlight(csharp){{
static void Main()
{
try
{
//例外の発生する可能性のある処理
}
catch
{
//例外時の処理
}
finally
{
//例外の有無に関わらず実行させる処理
}
}
}}
**デリゲート
#highlight(csharp){{
delegate void MyDelegate();
public class MyClass
{
static void Main()
{
MyDelegate myDelegate;
//デリゲートにメソッドMethod1の参照を代入
myDelegate = new MyDelegate(Method1);
//省略して記述も可能
//myDelegate = Method1;
//デリゲートにメソッドMethod2の参照を追加
myDelegate += new MyDelegate(Method2);
//省略して記述も可能
//myDelegate += Method2;
myDelegate();
}
static void Method1()
{
}
static void Method2()
{
}
}
}}
**名前空間
#highlight(csharp){{
// N1
namespace N1
{
// N1.C1
class C1
{
}
//N1.N2
namespace N2
{
//N1.N2.C2
class C2
{
}
}
}
}}