○クラス
■クラスの作成
public class testClass
{
public testClass(){
System.Diagnostics.Trace.WriteLine("コンストラクタ");
}
public int add(int a,int b){
return a+b;
}
}
▽上のクラスの呼び出し
private void button1_Click(object sender, System.EventArgs e)
{
testClass obj=new testClass();
System.Diagnostics.Trace.WriteLine(obj.add(10,20).ToString());
}
■コンストラクタとデストラクタ
class Class1
{
static void Main(string[] args)
{
Class1 a =new Class1();
a=null;
System.GC.Collect();//ガベージコレクタの強制実行
Console.Read();
}
Class1()
{
Console.WriteLine("コンストラクタ");
}
~Class1()
{
Console.WriteLine("デストラクタ");
}
}
■namespaceとクラスの作成
namespace inaba
{
public class testClass
{
public testClass()
{
System.Diagnostics.Trace.WriteLine("コンストラクタ");
}
public int add(int a,int b)
{
return a+b;
}
}
}
▽上のクラスの呼び出し
private void button1_Click(object sender, System.EventArgs e)
{
inaba.testClass obj=new inaba.testClass();
System.Diagnostics.Trace.WriteLine(obj.add(10,20).ToString());
}
○継承
■継承とオーバーロード
public class testClass
{
public testClass()
{
System.Diagnostics.Trace.WriteLine("コンストラクタ");
}
public int add(int a,int b)
{
return a+b;
}
}
public class testClass2 : testClass
{
public testClass2()
{
System.Diagnostics.Trace.WriteLine("コンストラクタ2");
}
public new int add(int a,int b)
{
return a+b+1;
//return base.add(a,b);//←基本クラスの呼び出し
}
}
▽実行するコード
testClass obj=new testClass2();
System.Diagnostics.Trace.WriteLine(obj.add(10,20).ToString());
処理結果
コンストラクタ
コンストラクタ2
30
▽実行するコード2
testClass2 obj=new testClass2();
System.Diagnostics.Trace.WriteLine(obj.add(10,20).ToString());
処理結果
コンストラクタ
コンストラクタ2
31
■抽象クラスとオーバーライド
public abstract class testClass
{
public abstract int add(int a,int b);
public int add2(int a,int b)
{
return a+b+2;
}
}
public class testClass2 : testClass
{
public override int add(int a,int b)
{
return a+b;
}
}
▽実行するコード
testClass obj=new testClass2();
System.Diagnostics.Trace.WriteLine(obj.add(10,20).ToString());
System.Diagnostics.Trace.WriteLine(obj.add2(10,20).ToString());
処理結果
30
32
■インターフェイス
public interface testClass
{
int add(int a,int b);
}
public class testClass2 : testClass
{
public int add(int a,int b)
{
return a+b;
}
}
▽実行するコード
testClass obj=new testClass2();
System.Diagnostics.Trace.WriteLine(obj.add(10,20).ToString());
処理結果
30
■staticメソッド
public class testClass
{
public static int add(int a,int b)
{
return a+b;
}
}
▽実行するコード
System.Diagnostics.Trace.WriteLine(testClass.add(10,20).ToString());
処理結果
30
○エラー
int[] ar=new int[10];//配列を宣言
try
{
ar[10]=1;//配列を超えた値に書き込んでエラーを発生させる
}
catch(Exception err)
{
System.Diagnostics.Trace.WriteLine("エラー発生 "+ err.ToString());
}
finally
{
System.Diagnostics.Trace.WriteLine("finally");
}
処理結果
エラー発生 System.IndexOutOfRangeException: インデックスが配列の境界外です。
finally
▲トップページ
>
Visual BASIC と C#