「C Sharp」の版間の差分

ナビゲーションに移動 検索に移動
2,112 バイト追加 、 11 か月前
メソッド
(→‎クラス: コンストラクタっぽいのの説明)
(メソッド)
実行結果の2行目と3行目を見比べれば分かるように、2行目の結果でwith書き換えをした派生変数 person02 を作成しても、もとのrecord型変数 person01 はそのままです。
 
== メソッドとクラス ==
 
=== 基本 ===
C# の「メソッド」と「クラス」の概念はお互いに関連しあっており、やや難しい。メソッドを読んでて分からなければ、とりあえずクラスも読んでみるのが良い。
 
=== メソッド ===
C言語でいう「関数」に似た機能として、c#では「メソッド」がある。
 
関数との違いとして、メソッドは必ずどこかのクラスまたは構造体に所属していなければならない。つまり、必ずどこかのクラスまたは構造体のブロック中にてメソッドは宣言されることになる。どこのクラスにも属してない むきだしのメソッドを宣言しても、それがコード中に存在しているだけでコンパイルできずにエラーになる。
 
:うごくコード例<syntaxhighlight lang="csharp">
using System;
 
// ユーザー定義側のメソッドには public はなくてもいい
class testclass{
static public void testfunc (){
var a = 55;
Console.WriteLine(a);
}
}
 
public class sample {
public static void Main(string[] args) {
 
testclass.testfunc();
}
}
</syntaxhighlight>
; 実行結果 :<syntaxhighlight lang="text">
55
</syntaxhighlight>
 
 
同じクラスの中にある関数を呼び出す場合なら、呼出時のクラス指定を省略できる。
 
:<syntaxhighlight lang="csharp">
using System;
 
public class sample {
public static void Main(string[] args) {
 
testfunc();
}
static public void testfunc (){
var a = 14;
Console.WriteLine(a);
}
}
</syntaxhighlight>
; 実行結果 :<syntaxhighlight lang="text">
14
</syntaxhighlight>
 
 
=== クラス ===
C++でいうクラスは、データの集合をあらわすものの事である標準C言語とC++でいう「構造体」も、若干の違いはあるがクラスと似たようなものである。
 
だがC#は理念として、あらゆるものをクラスまたは構造体で管理するという方針があるので、C++的なクラスの性質だけでなく、C#特有の独特の性質がある。
 
==== 基本 ====
クラスの基本的な使いかたは下記のとおり。
 
メンバは public にアクセス修飾子を指定しないかぎり、基本的には直接はアクセスできない。
 
==== コンストラクタ ====
下記コードのように、構造体またはクラス中に、構造体名あるいはクラス名と同じメソッド名をもつメソッドを書くと、その構造体/クラスを呼び出したときの処理を指定できる。
 
23,491

回編集

案内メニュー