値型と参照型、リテラル、varによる推論、const/readonly
値型と参照型の違い、リテラルと数値サフィックスの仕組み、varを使う場面、constとreadonlyの役割を学びます。
「値型と参照型、リテラル、varによる推論、const/readonly」はCoddyKit上の無料C# Academyレッスンです。 これはレッスン1/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC# Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C# Academyコースには全3レッスンが含まれています。
型が重要な理由
目標:値型と参照型の違い、および変数、リテラル、定数が日常的なコードでどのように動作するかを理解します。
値型と参照型
値型:代入時にデータをコピーします(例:int、bool、struct)。参照型:参照をコピーします(class、array、string)。
- 値型:ローカルな変更を安全に扱えます
- 参照型:共有されたオブジェクトの同一性を持ちます
リテラルとサフィックス
リテラルには型があります。分かりやすくするためにサフィックスを使います:f(float)、m(decimal)、L(long)。
- 3.14f → float
- 10m → decimal(通貨)
- 123L → long
var による型推論
var を使うと、コンパイラーが右辺から型を推論します。型が明らかな場合に使い、それ以外では明示的に型を指定します。
const と readonly
const:コンパイル時定数です。readonly:コンストラクターまたは宣言時に設定します。
- 固定値(例:Pi)には const を使います
- 実行時に決まる値には readonly を使います
型の実践
1つの小さなプログラムで、値型と参照型の動作、数値サフィックス、単純な var による型推論、const と readonly を確認します。
using System;
// Value type (struct) copies by value
public struct PointS
{
public int X;
public int Y;
}
// Reference type (class) copies the reference
public class PointC
{
public int X;
public int Y;
}
// Readonly demo class
public class Config
{
public readonly string Name;
public Config(string name)
{
Name = name; // can set here
}
}
public class Program
{
// Compile-time constant
private const double Pi = 3.14159;
public static void Main(string[] args)
{
// 1) Value vs reference
PointS a = new PointS { X = 1, Y = 2 };
PointS b = a; // copy value
b.X = 99;
Console.WriteLine("Value struct a.X = " + a.X); // 1 (unchanged)
Console.WriteLine("Value struct b.X = " + b.X); // 99
PointC ac = new PointC { X = 1, Y = 2 };
PointC bc = ac; // copy reference
bc.X = 77;
Console.WriteLine("Ref class ac.X = " + ac.X); // 77 (same object)
Console.WriteLine("Ref class bc.X = " + bc.X); // 77
// 2) Literals & suffixes
float f = 3.14f;
decimal price = 10m;
long big = 123L;
Console.WriteLine("f=" + f + " price=" + price + " big=" + big);
// 3) var inference (type is obvious)
var sum = a.X + a.Y; // int
Console.WriteLine("sum=" + sum);
// 4) const vs readonly
Config cfg = new Config("Demo");
Console.WriteLine("Pi=" + Pi + " Name=" + cfg.Name);
}
}
値型の定義
まとめ
まとめ:値型はデータをコピーし、参照型はオブジェクトを共有します。数値リテラルにはサフィックスを使い、型が明らかな場合は var を使います。状況に応じて const と readonly を選択します。
よくある質問
「値型と参照型、リテラル、varによる推論、const/readonly」レッスンは無料ですか?
はい。「値型と参照型、リテラル、varによる推論、const/readonly」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C# Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C# Academyコースには全3レッスンが含まれています。
「値型と参照型、リテラル、varによる推論、const/readonly」で何を学びますか?
値型と参照型の違い、リテラルと数値サフィックスの仕組み、varを使う場面、constとreadonlyの役割を学びます。 ブラウザで直接実行するハンズオンコードでC# Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
C# Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのC# Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/3です。
「値型と参照型、リテラル、varによる推論、const/readonly」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このC# Academyレッスンでコードを書いて実行できますか?
はい。すべてのC# Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 値型と参照型、リテラル、varによる推論、const/readonly
- 演算子と式:算術、比較、論理
- サフィックスの実践、キャストと変換、C# 6のオブジェクト生成