0Pricing
C# Academy · レッスン

値型と参照型、リテラル、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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 値型と参照型、リテラル、varによる推論、const/readonly
  2. 演算子と式:算術、比較、論理
  3. サフィックスの実践、キャストと変換、C# 6のオブジェクト生成
← C# Academyに戻る