アットウィキロゴ

C♯開発チュートリアル

更新日:2009-04-08

C#とは


C++の一種の進化形であると同時に、Javaの影響を大きく受けている
言語といえる。また、VBやDelphiなどの様々な言語の長所を集めた
言語といえる。

C#の特徴


C++と比較 … メモリ管理の自動化によりコーディングが手軽
Javaと比較 … 処理の記述が容易
VBと比較 … データ型が厳密に扱われ、デバックが楽。
その他 … VB的にGUIの開発を行うことができるのも特徴

CLI


Common Language Infrastructureの略
CLIは一種の実行環境であり、クラスライブラリを持つ。
VC++ではMFCというように、VC#ではCLIを利用して開発を行う
のが一般的である。

Visual Studio .NET


従来のVisual Studioに比べ、Windows向けから.NETFramework上で
動作するソフトウェアの開発が行える。

C♯のデータ型


予約語 意味
sbyte 符号付き8ビット整数
byte 符号なし8ビット整数
short 符号付き16ビット整数
ushort 符号なし16ビット整数
int 符号付き32ビット整数
uint 符号なし32ビット整数
long 符号付き64ビット整数
ulong 符号なし64ビット整数
char 文字型
float 単精度実数
double 倍精度実数
bool 論理型
decimal 10進型
string 文字列型

インデクサとは


インスタンスをインデックスで参照することによって、インスタンス内のオブジェクト配列の1つを取り出す仕組み

 using Systemm;
 public class list
 {
    private static int item = 1;
    private object value;
    private list next;
    public list( object o ){
      value = o;
      next = null;
    }
    public object get( int index ){
      if( index > item - 1 )
      {
        return "index error";
      }
      list l = this;
      while( index != 0 ){
        l = l.next;
        index--;
      }
      return l.value;
    }
    public void set( int index,object value ){
      if( index > item -1 ){
        Console.Write("index error");
        return;
      }
      list l = this;
      while( index != 0 ){
        l = l.next;
        index--;
      }
      l.value = value;
    }
    public object this[int index]{
      get{ return this.get(index); }
      set{ this.set( index,value ); }
    }
    public void show(){
      list l = this;
      Console.WriteLine("item:[0]",item);
      do{
        Console.WriteLine(l.value);
        l = l.next;
      }while( l != null );
      Console.Write('\n');
    }
 }
 public class run
 {
   public statioc void Main(){
     list l = new list("item1");
     l.add("item2");
     l.add(300);
     l.show();
     object o = l[0];
     l[0] = l[1];
     l[1] = o;
     l.show();
     Console.WriteLine(l[2]);
     Console.WriteLine(l[3]);
   }
 }

デリゲートとは


メソッドの型を宣言しておいて、その型を持つメソッド実装と入れ替えられる仕組み

 using System;
 Class A
 {
    private string[] ip,us;
    public A(){
      jp = new string[]{"零","壱","弐","参"};
      us = new string[]{"zero","one","two","three"};
    }
    public string getJP(int i){
      return jp[i];
    }
    public string getUS(int i){
      return us[i];
    }
 }
 delegate string MyDelegate( int i );
 class run
 {
   public static void Main(){
     A a = new A();
     MyDelegate[] del = { 
                          new MyDelegate( a.getJP ),
                          new MyDelegate( a.getUS )
                        };
     for( int i = 0; i <4; i++ )
     {
       Console.WriteLine("{0},{1}",del[0](i),del[1](i));
     } 
   }
 }  
最終更新:2009年04月08日 16:59