「C Sharp」の版間の差分

ナビゲーションに移動 検索に移動
2,019 バイト追加 、 1 か月前
→‎var: C#には、C言語でいうところの「グローバル変数」は無い。開発元のマイクロソフトの公式ドキュメントでも、そう明言されています
(→‎目次: C Sharp/インストール方法|インストール方法とそれぞれの実行方法)
(→‎var: C#には、C言語でいうところの「グローバル変数」は無い。開発元のマイクロソフトの公式ドキュメントでも、そう明言されています)
=== var ===
変数の宣言の際、intやcharなどの具体的な型を指定しなくても、宣言時の代入で具体的な数値または文字列の代入といっしょにvar とだけ指定すれば、代入されるデータから型を自動的に判断してくれます。
 
 
:<syntaxhighlight lang="csharp">
 
 
C# で宣言されている変数は、原則、どこかのクラスに所属していなければならない。C++のような感覚でもしコード冒頭のどこの class宣言もない部分で変数宣言するとエラーになりコンパイルできない。
 
:<syntaxhighlight lang="csharp">
using System;
 
var a = 4; // 変数宣言がクラスに包まれていないのでエラーになる。
 
public class sample {
public static void Main(string[] args) {
Console.WriteLine(a);
 
}
}
</syntaxhighlight>
; 実行結果
:エラーになりコンパイル不可
 
 
この仕様は明らかにC#やその手本のJavaが採用した「カプセル化」などの概念に基づいており、本質的な仕様であろう。「カプセル化」の概念とは、プログラムの部品をむきだしで管理することはせず、「カプセル」と言われるグループ単位でモジュール的・パッケージ的に管理することで大規模開発を効率化しようという1990~2001年頃の流行概念である。
 
つまり、C#には、C言語でいうところの「グローバル変数」は無い。開発元のマイクロソフトの公式ドキュメントでも、そう明言されています[https://docs.microsoft.com/ja-jp/dotnet/csharp/fundamentals/object-oriented/ Microsoft Docs 日本語訳『C# のクラス、構造体、レコードの概要』2022/06/10] (2022年6月18日に確認)。
 
これはつまりC#では、すべての変数は、なんらかのクラスに属するメンバです。
 
もしC#でどこからもアクセスしたい変数を定義したい場合は(ただし同じソースコードファイル内)、単に public class でクラス宣言しておいて、必要に応じてクラス内の変数宣言で static 修飾子をつけて宣言すればいいだけである。
 
別ファイルからのアクセスについては、初心者レベルを越えるので、ここでの説明は省略する。
 
=== タプル ===
23,090

回編集

案内メニュー