Serviceを読んで理解し、同意したものとみなします。ch:xになるのですが、なぜxになるのでしょうか?また、charは文字を一文字だけ保持する役割だと知りましたが、これの存在意義はあるのでしょうか。表示されることになります。14:043厳密に言うと、.NETにおけるcharはUTF-16の文字コードを表す構造体です。Unicodeでは1文字が最大21bitまで定義されていたり、合成文字を作れたりするので、1文字と対応するとは限りません。票5Chが”X”になる理由なぜ、整数を、代入したのに、char型にキャストしたら”X”になるのかという理由から先に。char型はご理解の通り、文字を1文字だけ表現する型(*1)なので、コンソールへの出力時に、入力した”88”(*2)をユニコードとして解釈し、ユニコードの”88”に該当する大文字の”X”を出力したからです。“88”(*2)と言う値を、どのように評価するかは型によって変化します。i=(int)'X';Console.WriteLine(i);このように書いたとき、“88”が出力されます。(*1)このあたり実はそう簡単にはいかないです。char型2つで1つの文字を表現することもあります。(*2)便宜上、“88”という10進数を使っていますが、本来的にはメモリに格納された値そのものと言うことでご理解ください。文字を扱うのに長けたstring型があるのに、なぜchar型が又別に存在しているのかという御疑問だと思います。char型の方が効率的に処理できる場合があり、代表的な使いどころとして、1文字しか対象としない上と被りますが、文字列を1文字ずつばらして操作する際に利用するあたりで使うことがあります。若干、込み入った話になりますが、string型は参照型、char型は値型、と言う大きな違いがあります。参照型の場合、マネージヒープにその実体が置かれますので、ガーベージコレクタに余計に仕事をして貰う必要が出てきます。他方、char型は値型なので、一般的な使い方をしていれば、マネージヒープを利用しないので、ガベージコレクタは余計な仕事をしなくても済みます。処理粒度が比較的にでかくてこの辺のオーバーヘッドを気にする必要が無い場合もありますが、処理粒度の比較的軽いモノたとえば、stringのIndexOfメソッドや、Replaceメソッドの場合は、処理にかかるコストと参照型を使うオーバーヘッドにかかるコストがコトによっては一緒になってしまうか、最悪の場合逆転しかねないシナリオもあります。ここいらには、string型とchar型のオーバーロードがわざわざ存在しているのにはその辺の理由なのではないかと個人的には思っています。同様に、文字列を一文字ずつ分解して処理したい場合も、一文字の文字列として処理するより、char型として処理した方が効率が良くなります(*3)(*3)但し、先に示したとおりcharが2つで1文字になる場合もあり得ますのでその辺は注意が必要になります。個の銅バッジありがとうございました。|1前提としてコンピューター上の情報は基本的に0/1の2状態(ビット)の組み合わせで表されます。charは16ビットで0~65535の数値を表しており、それぞれの整数に文字が割り振られています(UTF-16)。これらのcharを複数個配列に格納した型が文字列型のstringです。このような事情でコンピューター上での文字列表現には文字型が不可欠です。char型はToStringをオーバーライドしており、前述のUTF-16に対応する文字を含んだstringを返すようになっています。文字列結合の+演算子を使うとcharは数値ではなく文字になります。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。