-
C#でファイルを切り詰める方法:FileStream.SetLengthメソッドの使い方
C#でファイルを切り詰めたい場合は、FileStreamクラスのSetLengthメソッドを使用します。このメソッドを使うことで、ストリームの長さを任意のサイズに設定できます。SetLengthメソッドの構文public override void SetLength (long value);引数「value」には、ストリームの新しい長さをint64(long型)で指定します。指定した値が現在の長さより小さい場合指定した値が現在のストリーム長より小さい場合、ストリームは切り詰められます。その際、現在位置が新しい長さよりも後ろにある場合は、現在位置は自動的にストリームの最終バイトへ移動されます
-
C#における初期化とインスタンス化の違いをわかりやすく解説
C#プログラミングでは、「初期化」と「インスタンス化」という似たような用語がよく登場します。どちらもオブジェクト指向プログラミングの基礎となる重要な概念ですが、それぞれ役割が異なります。本記事では、両者の違いを具体例とともにわかりやすく解説します。 初期化(Initialization)とは 初期化とは、変数を宣言すると同時に値を代入することを指します。これにより、変数は使用可能な状態になり、未定義の値が残ることを防げます。 以下は、整数型の変数を宣言と同時に「50」という値で初期化する例です。 int val = 50; なお、単純な変数の初期化には new キーワードは不要ですが、配列
-
C#のfloat型とdouble型を徹底比較!精度・範囲・使い分けのポイント
C#で数値計算を行う際、小数点を含む値を扱うには浮動小数点型を使用します。代表的なものが float 型と double 型ですが、この2つは何が違うのでしょうか。最大の違いは精度(Precision)にあります。float型とdouble型の基本的な違いfloat は単精度(32ビット)の浮動小数点データ型です。一方、double は倍精度(64ビット)の浮動小数点データ型であり、より多くのメモリを使う代わりに、はるかに高い精度と広い表現範囲を持っています。それぞれの表現できる範囲float型の範囲-3.4 × 10^38 ~ +3.4 × 10^38double型の範囲±5.0 × 10^
-
C#で配列を宣言するだけでは配列は作成されない?宣言と初期化の違いを解説
C#において、配列の宣言だけではメモリ上に配列は初期化されません。配列変数を初期化して初めて、その配列に値を代入できるようになります。宣言だけでは配列は作成されない以下のコードは単なる「宣言」であり、この時点ではまだ配列は作成されていません。int[] id;実際に整数型の配列を作成するには、次のように記述します。配列は参照型であるため、インスタンスを生成するには new キーワードを使用する必要があります。int[] id = new int[5] {};サンプルコードそれでは、配列の宣言・生成・初期化・出力までの一連の流れを見てみましょう。using System; namespace
-
C#でプログラムを指定ミリ秒スリープさせる方法【Thread.Sleepの使い方】
C#プログラムを指定したミリ秒数だけスリープ(一時停止)させたい場合は、Thread.Sleep()メソッドを使用します。このメソッドは、現在実行中のスレッドを指定された時間だけ停止させるもので、マルチスレッド処理や処理間隔の制御によく使われます。例えば、1000ミリ秒(1秒)スリープさせたい場合は、次のように記述します。Thread.Sleep(1000);引数には待機時間をミリ秒単位で指定します。1000ミリ秒=1秒となるため、5秒待ちたい場合は「5000」を指定してください。サンプルコード以下のコードでは、子スレッドを作成し、forループの各反復処理ごとに1000ミリ秒スリープするカウン
-
C#でstring.Emptyを使って文字列を空で初期化する方法
C#でstring.Emptyを使用して文字列を初期化する C#では、string.Emptyを使うことで、文字列変数を空の状態(長さゼロの文字列)で初期化できます。 string myStr = string.Empty; string.EmptyはString.Emptyとまったく同じ意味で、どちらも空の文字列()を表します。リテラルのを代入しても同じ結果になりますが、「意図的に空文字列を設定している」ことが明確になるため、可読性の観点からstring.Emptyが使われることも多くあります。 文字列が空かどうかを確認する方法 文字列が空またはnullかどうかを判定したい場合は、IsNu
-
C#の継承とコンポジション(構成)の違いをわかりやすく解説
C#におけるオブジェクト指向設計では、クラス同士の関係性を表す方法として「継承(Inheritance)」と「コンポジション(Composition/構成)」という2つの重要な概念があります。それぞれの特徴と使い分けについて、具体例を交えて解説します。 継承(Inheritance)とは 継承とは、既存のクラスのメンバー(フィールドやメソッドなど)を、新しいクラスが引き継ぐ仕組みです。このとき、元となる既存のクラスを基底クラス(ベースクラス)、新しく作成するクラスを派生クラス(サブクラス)と呼びます。 継承は「IS-A関係(〜は〜である)」を実現します。例えば、「哺乳類は動物である」「犬は哺乳
-
C#の入れ子クラス(ネストクラス)とは?基本構文と実装例を解説
入れ子クラス(ネストクラス)とは入れ子クラス(Nested Class/ネストクラス)とは、別のクラス(外側のクラス=エンクロージングクラス)の内部で宣言されたクラスのことです。入れ子クラスは外側のクラスの一つのメンバーとして扱われ、内部クラスと外部クラスという関係性を持ちます。ただし注意が必要なのは、外側のクラスのメンバーからは、入れ子クラスのメンバーに直接アクセスできないという点です。入れ子クラスはあくまで独立した型として振る舞います。C#における入れ子クラスのコード例それでは、C#で入れ子クラスを定義する基本的なコード例を見てみましょう。以下の例では、クラス「Two」が入れ子クラスに該当
-
C#のガベージコレクター(GC)の仕組みを徹底解説
C#におけるガベージコレクター(GC)は、メモリの割り当てと解放を自動的に管理する仕組みです。開発者が手動でメモリを操作する必要がなく、自動メモリマネージャーとしてアプリケーションの安定性と効率を支えています。 ガベージコレクター(GC)とは ガベージコレクターは、.NETランタイムに組み込まれた自動メモリ管理機構です。主な特徴は以下のとおりです。 メモリの割り当てや解放の方法、またそのメモリを使用するオブジェクトのライフタイム管理を、開発者が意識する必要はありません。 newキーワードでオブジェクトを生成したときや、値型がボックス化されたときに、メモリの割り当てが行われます。この割り当て処
-
C#でファイルの存在を確認する方法|File.Exists()メソッドの使い方
プログラムを開発していると、指定したファイルが実際に存在するかどうかを確認したい場面はよくあります。ここでは、次のファイルが存在するかどうかをチェックする例を見てみましょう。E:\new.txtFile.Exists()メソッドとはC#では、System.IO名前空間に含まれるFile.Exists()メソッドを使うことで、ファイルの存在を簡単に確認できます。このメソッドは、指定したパスにファイルが存在すればtrue、存在しなければfalseを返します。上記のファイルの存在を確認するには、以下のようにExists()メソッドを使用します。if (File.Exists(@E:\new.txt)
-
C#のTruncateメソッドで小数点以下を切り捨てる方法
C#のTruncateメソッドとはC#では、Truncateメソッドを使用することで、数値の小数点以下をすべて切り捨て、整数部分だけを取り出すことができます。四捨五入とは異なり、単純に小数点以下を削除するのが特徴です。切り捨て対象の数値たとえば、次のような数値があったとします。20.35MTruncateメソッドの使い方小数点以下を切り捨てるには、decimal構造体の静的メソッドであるTruncate()を次のように呼び出します。decimal.Truncate(20.35M)この場合、戻り値は「20」となります。サンプルコード実際に動作する完全なコード例を見てみましょう。using Sys
-
C#のMidpointRounding.ToEvenで数値を最も近い偶数に丸める方法
C#では、MidpointRounding列挙型のToEvenメンバーを使用することで、数値を最も近い偶数に丸める(銀行家の丸め)ことができます。この丸め方式は、中間値(ちょうど半分の値)を処理する際に、常に偶数側へ丸められるため、統計的な偏りを抑えたい場面で役立ちます。基本的な使い方まず、丸め対象となるdecimal型の数値を宣言して初期化します。decimal val = 70.45M;次に、decimal.Roundメソッドと組み合わせて、最も近い偶数へ丸めます。decimal.Round(val, 0, MidpointRounding.ToEven)第2引数の「0」は小数点以下の桁数
-
C#でテキストファイルを開いて読み込む方法【StreamReaderクラスの基本】
C#でプレーンテキストファイル(.txtなど)を開いて読み込むには、StreamReaderクラスを使用するのが一般的です。StreamReaderはSystem.IO名前空間に属しており、ファイルを1行ずつ効率的に読み取ることができます。 StreamReaderでファイルを開く まず、読み込み対象のファイルパスを指定して、StreamReaderのインスタンスを作成します。 StreamReader sr = new StreamReader(d:/new.txt); ファイルの内容を1行ずつ表示する ReadLine()メソッドを使うと、ファイルから1行ずつ文字列を読み込めます。戻り
-
C#でファイルを読み込む方法まとめ:テキストファイルとバイナリファイルの基本
C#では、System.IO名前空間に含まれるクラスを使うことで、テキストファイルやバイナリファイルなど、さまざまな形式のファイルを簡単に読み書きできます。この記事では、代表的な2つの読み込み方法——「StreamReaderを使ったテキストファイルの読み込み」と「BinaryReader/BinaryWriterを使ったバイナリファイルの読み書き」——をサンプルコード付きで解説します。 1. StreamReaderでテキストファイルを読み込む テキストファイルを1行ずつ読み込みたい場合は、StreamReaderクラスが便利です。ReadLine()メソッドを使うことで、ファイルの終端(
-
C#で隠しファイルを開く方法【属性の変更手順を解説】
C#で隠しファイルを開く基本の手順隠しファイル(隠し属性が設定されたファイル)は、そのままでは通常の方法で開くことができません。C#で隠しファイルを扱うには、まず隠し属性を解除してファイルを可視状態にする必要があります。以下の手順に従って、隠しファイルの読み取りと再非表示化を行いましょう。ステップ1:FileInfoクラスで隠し属性を解除するまず、FileInfoクラスを使って対象ファイルの情報を取得し、FileAttributes.Hidden属性を削除してファイルを見える状態にします。FileInfo file = new FileInfo(Environment.CurrentDirec
-
JavaのSystem.exit(0)に相当するC#の書き方とは?
Javaでプログラムを終了する際に使われる System.exit(0) に相当するC#のコードは、以下の通りです。Environment.Exit(exitCode);Environment.Exit()メソッドとはC#の Environment.Exit() メソッドは、現在実行中のプロセスを終了し、オペレーティングシステム(OS)に終了コードを返します。Javaの System.exit() とほぼ同じ役割を果たすため、JavaからC#へ移行する開発者にとって覚えやすいメソッドです。終了コード「0」を指定した場合引数の exitCode に 0(ゼロ) を指定すると、プロセスが正常に完了
-
C++のfriendキーワードに相当するC#の機能とは?
C#におけるfriendの概念C++におけるfriend関数(フレンド関数)は、クラスのスコープ外で定義される関数でありながら、そのクラスのすべてのprivateメンバーおよびprotectedメンバーにアクセスする権限を持つ特別な関数です。friend関数のプロトタイプ宣言はクラス定義内に記述されますが、friendはあくまでメンバー関数ではなく、クラス外部の存在である点に注意が必要です。friendとして指定できるのは、関数、関数テンプレート、メンバー関数のほか、クラスやクラステンプレートも可能です。クラスをfriendとして指定した場合、そのクラス全体とすべてのメンバーがフレンド関係とな
-
JavaScriptの配列をC#の配列に変換する方法をわかりやすく解説
フロントエンド(JavaScript)とバックエンド(C#)の間でデータを受け渡す際、JavaScriptの配列をそのままC#で扱うことはできません。そこで、配列を一度文字列に変換し、C#側で分割(Split)して配列として復元するという手法がよく使われます。この記事では、その具体的な手順をサンプルコード付きで解説します。 手順1:JavaScriptで配列を作成する まず、変換元となるJavaScriptの配列を用意します。 <script> var myArr = new Array(5); myArr[0] = Welcome; myArr[1] =
-
JavaのisInstance()メソッドに相当するC#の機能とは?
JavaのisInstance()メソッドとはJavaのjava.lang.Class.isInstance()メソッドは、指定されたオブジェクトが、そのClassオブジェクトが表すクラスと代入互換性(assignment-compatible)を持っているかどうかを判定するためのメソッドです。実行時にオブジェクトの型を動的にチェックしたい場合に活用されます。C#での同等の機能:IsAssignableFrom()JavaのisInstance()メソッドに相当するC#の機能は、Type.IsAssignableFrom()メソッドです。このメソッドを使うことで、ある型のインスタンスを別の型の
-
C#で乱数を生成する方法:Randomクラスの使い方を解説
C#で乱数を生成するには、標準ライブラリに用意されている Random クラスを使用します。このクラスを使うことで、指定した範囲内の整数や浮動小数点数など、さまざまな乱数を簡単に取得できます。 Randomオブジェクトの作成 まず、Randomクラスのインスタンス(オブジェクト)を作成します。 Random r = new Random(); Next()メソッドで乱数を取得する 次に、Next() メソッドを使って、指定した範囲内のランダムな整数を取得します。以下の例では、10以上50未満の乱数を生成しています。 r.Next(10, 50); Next()メソッドは「最小値(含まれる)」と