質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

3512閲覧

visual studio 2022 のコードの色について

rtyy

総合スコア2

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

1グッド

0クリップ

投稿2022/08/28 19:20

編集2022/09/02 06:01

visual studio 2022 のコードの色(オレンジ色は文字列など)はそれぞれどのような意味を持ちますか?
イメージ説明

画像の変更

トリミング修正

私は検索しました際下記のリンクを参照しました。
リンク内容

TN8001👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2022/08/28 23:31

設定確認の画面で見えることもあるのでは?
rtyy

2022/08/29 00:48

コメントありがとうございます。 そちらで、青が変数か関数かなどがわかるのでしょうか?
fana

2022/08/30 01:07 編集

「ある要素が→何色か?」というのは,設定画面でその要素に相当する項目の現在設定を探せばわかるけども, 「この色は→何の要素か?」という方向で「逆引き」する方法はあるか? …っていう話なのかな? (とりあえず設定は何かしらのファイルに保存されていると思うから,そのファイルと,ファイルのフォーマットとがわかるならば,色の名前相当のバイト列をファイル内で検索して…みたいな話はあるだろうけど…)
m.ts10806

2022/08/31 01:57

そうですね。 設定だと機能から色を見る感じになりますね、本来。
rtyy

2022/08/31 02:20

fana コメントありがとうございます。 先ほど、TN8001さんにコメントさせていただきましたので参照をお願いできましたらと思います。
m.ts10806

2022/08/31 02:23

ひとまず、自身が調べたことは質問本文に書きましょう。 回答者も調べて書くことのほうが多いので、同じような記事を参照している可能性は高くなります。 間違った記事を参照しているのか、記事を理解できてないのか が事前に分かってるだけでも回答の質は上がり、解決も早くなります。
rtyy

2022/08/31 02:37

m.ts10806 コメントへの返信ありがとうございます。 記事を理解できていないところもあり、また、みなさんにご回答やコメントいただいたことも申し訳ないのですが、なかなか理解が難しいところがあるかもしれません。 また質問欄を更新させていただきました。 よろしくお願いいたします。
m.ts10806

2022/08/31 04:52

バージョンが違うようなので鵜呑みにはできませんね。
guest

回答2

0

ベストアンサー

青色の public, static, void, int

表示項目:キーワード
C# のキーワード | Microsoft Docs

薄い緑色の Console

表示項目:ユーザー タイプ - クラス
クラス | Microsoft Docs

Main()、WriteLineの黄色

表示項目:ユーザー メンバー - メソッド
メソッド - C# ガイド | Microsoft Docs

グレー色(System)

表示項目:ユーザー メンバー - 名前空間(だが、「メンバー アクセスを簡略化する」機能のため薄くなっている)
名前空間で型を整理する | Microsoft Docs

ピンク色(for)

表示項目:キーワード - コントロール
ステートメントのキーワード - C# リファレンス | Microsoft Docs

薄水色(i)

表示項目:ユーザー メンバー - ローカル
Variables - C# language specification | Microsoft Docs

薄グレー色(.)

表示項目:演算子
C# 演算子と式 - C# リファレンス | Microsoft Docs


メニューの「表示」ー「その他のウィンドウ」ー「Syntax Visualizer」を表示すると、ある程度のヒントには使えます。
Visual Studio で Roslyn Syntax Visualizer を使ってコードを調べる | Microsoft Docs

Classificationのところに色が出ていれば(出ないのもあります)、それがボタンになっていて直接色を変えられます。
しかしオプション画面が出るわけではないので、どの項目として色がついているのかはわかりません(適当に色を変更し、オプションで規定値ではないものを探すことになりますorz)

Syntax Visualizer

投稿2022/08/30 10:13

TN8001

総合スコア9321

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rtyy

2022/08/31 02:14

ご返信ありがとうございます。 私の現在の認識としてですが、青色は、予約語、黄色はメソッド、グレー(System ?)、緑色(クラス名)、オレンジ(文字列)、ピンク(制御文)、薄水色(i 変数).(拡張子) 上記の認識で正しいでしょうか?
TN8001

2022/08/31 04:09 編集

> グレー(System ?) 名前空間(namespace)だが省略できる(書かなくてもいい)よという合図 > .(拡張子) 演算子 > 上記の認識で正しいでしょうか? 提示された画像の範囲では「そうだ」ということです。 しかし例えば「クラス名は緑色」ですが、「緑色はすべてクラス名」というわけでもありません。 少なくとも色が違うものは、別の種類ということはわかります。 わたしは色で「これは何々だ」というような覚え方はしてないですね。 もちろん慣れた配色ではない場合違和感はありますが、それで急に読めなくなるということもありません。 Webページに載っているコードや画像が、別の配色かもしれませんよね? 言語を覚えることがまず先で、色はあくまで見やすくするための補助と思ってください。 言語を学習するにしたがって、 「クラスと構造体をばっちり使い分けるから色を変えるぜ」とか [【Visual Studio】構造体の表示色を変える方法 - コガネブログ](https://baba-s.hatenablog.com/entry/2021/11/03/081000) 「フィールドとプロパティが同じ色はイヤだ」とか [あなたのVisualStudioをセマンティックなカラフルに in VS2022 - Qiita](https://qiita.com/soi/items/378bbe7b21bab3d82e2b) 好みも出てくるでしょう。 そうしたら自分好みにカスタマイズすればいいのです。 そのために非常に細かく項目があるわけです(細かすぎて目的のものを探すのが大変なわけですがw
rtyy

2022/09/01 02:46

TN8001 ご返信ありがとうございます。 >しかし例えば「クラス名は緑色」ですが、「緑色はすべてクラス名」というわけでもありません それはどのようにして見分けられるのですか? また他の色についても同様なのでしょうか。 >わたしは色で「これは何々だ」というような覚え方はしてないですね。 もし差し支えなければどのような覚え方をされているのか、ご教示いただけますか?今後の勉強のために参考にさせていただきたいと思いまして。 >Webページに載っているコードや画像が、別の配色かもしれませんよね? そうかもしれません。 質問が多く恐縮ですがよろしくお願いいたします。
TN8001

2022/09/01 05:13

>> しかし例えば「クラス名は緑色」ですが、「緑色はすべてクラス名」というわけでもありません > それはどのようにして見分けられるのですか? ダークテーマでどうなってるかは確認していませんが、手元のVSでは以下が同じ色でした(例のHoge部分が同じ色) ユーザータイプ - インターフェース(例:interface Hoge { }) ユーザータイプ - クラス(例:class Hoge { }) ユーザータイプ - デリゲート(例:delegate void Hoge();) ユーザータイプ - 型パラメーター(例:class A<Hoge> { }) ユーザータイプ - 構造体(例:struct Hoge { }) ユーザータイプ - 列挙型(例:enum Hoge { }) ポンと出てきた場合(メソッドの引数とかクラスのプロパティとか)は、同じ色なので当然見分けはつきません^^; 例:Hoge Fuga { get; } Hogeの上にマウスを載せれば、「enum Hoge」等ツールチップは出ます。 もし言語を覚える際に見分けがついたほうがわかりやすいと思うなら、それぞれ別の色に変えるのも自由です。 デフォルト設定は万人向けに「まあこのくらいの色分けでいいよね?」というだけでしょう(なんで↑のものが同じ色になってるのかは開発者でないので知りません) 例えばインターフェース・クラス・構造体はプロパティやメソッドを持ち、使う側からすればあまり差を意識することもありません(もちろん違うものなので注意する点はあります) 同じ色でもそんなに困らないでしょう(もちろん困る人は「好きに変えてくれ」ということです) > また他の色についても同様なのでしょうか。 どうでしょう?オプション画面で確認してください。 オプション画面が非常に使いにくいことは同意します(シンタックスハイライトの色とIDE機能の色・言語毎等々、項目が多すぎるのに階層化されておらず何が何だかさっぱりわからないw >> わたしは色で「これは何々だ」というような覚え方はしてないですね。 > もし差し支えなければどのような覚え方をされているのか、ご教示いただけますか?今後の勉強のために参考にさせていただきたいと思いまして。 例えば↓とあった場合、Hogeはクラスか構造体です。 var h = new Hoge(); hはHogeクラス(か構造体)のインスタンスだということは、色がなくてもわかります。 (Consoleがstatic classだと知っているとして)コメントの内容は色がなくても自明です。 Console.WriteLine(); // メソッド呼び出し Console.ForegroundColor = ConsoleColor.Red; // フィールドかプロパティ設定 イベント登録はフィールドかプロパティ加算の可能性はあり得ます(ユーザータイプ - イベントで変更可) Console.CancelKeyPress += Console_CancelKeyPress; // イベント登録 要は文法上許される操作や語順は決まりがあるので、「コレの後にはアレかソレしか書けない」というのを自然と覚えるというか慣れてくるものだと思います。 だからと言ってじゃあ「メモ帳」で書けるかというと、わたしは全く書ける気はしません^^; 色の問題だけでなくインテリセンスやエラーチェックが効いているので快適なコーディングができるわけです。
TN8001

2022/09/02 06:56 編集

例えばこんな邪悪な(書くべきではない)コードの場合は、色がないとどう解釈してるかはまったくわかりません^^; [ピックアップRoslyn: 文脈キーワードの複雑さ低減 | ++C++; // 未確認飛行 C ブログ](https://ufcpp.net/blog/2021/2/lexicalkeywords/)
rtyy

2022/09/02 05:52 編集

TN8001 ご教示くださりありがとうございます。 慣れの部分などもあるのですね。 今後の勉強にさせていただきます。
guest

0

追記: 以下の回答の「デフォルトの設定もカスタマイズする画面で分かる」には無理があったので訂正します。下の【追記】を見てください。

色はカスタマイズできますが、デフォルトの設定もカスタマイズする画面で分かると思います。以下のドキュメントを見てください。

方法: Visual Studio IDE とエディターのカスタマイズ
https://docs.microsoft.com/ja-jp/visualstudio/ide/quickstart-personalize-the-ide?view=vs-2022


【追記】

Visual Studio 2022 で上記のことを調べてみましたが、下の画像の[表示項目]のどの項目が C# のコードで何に該当するかは分かりにくかったです。

イメージ説明

[表示項目]にはキーワード、コメント、タイプ、文字列、文字列 - エスケープ文字、かっこの一致、リテラル等々あってそれらの設定は C# のエディタ上の文字に反映されるのですが、逆に C# のコードの何が[表示項目]のどれに該当するのかが分かりにくく、上に書いたように「デフォルトの設定もカスタマイズする画面で分かる」と言うのは難しい話でした。

では、何を見たら色の使い方が分かるかですが、自分が探した限りではそういうことが書いた Microsoft のドキュメントは見つけられませんでした。

配色テーマによっても以下の画像のように変わってくるし、調べなくても見ればわかるし、そんなドキュメントを作っても意味がないということではないかと勝手に想像してます。

配色テーマ: 青

イメージ説明

配色テーマ: 濃色

イメージ説明

投稿2022/08/28 22:56

編集2022/08/30 03:18
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rtyy

2022/08/29 00:47

SurferOnWww ご回答ありがとうございます。 コードの色がそれぞれどのように色分けされているかご教示いただければと思います。 例えば、青は関数?それとも変数?のような感じです。
退会済みユーザー

退会済みユーザー

2022/08/29 00:54

質問に貼った画像で言うと、青色の public, static, void, int は予約語、薄い緑色の Console はクラス名です。
rtyy

2022/08/29 20:38

SurferOnWww ご返信ありがとうございます。 そうしますとMain()、WriteLineの黄色やグレー色(System)、ピンク色(for)、薄水色(i)、薄グレー色(.)はそれぞれどのように色分けされていますか?
退会済みユーザー

退会済みユーザー

2022/08/29 23:49

釣りとかですか?
rtyy

2022/08/30 00:27

SurferOnWww いえ、上記でコメントいただきました「青色の public, static, void, int は予約語、薄い緑色の Console はクラス名です。」とのコメントはまさしく私がお聞きしたかったことであり、その他の色についても同様になにを示しているのかご教示いただければと思いました。
退会済みユーザー

退会済みユーザー

2022/08/30 02:08

変数とか関数という基本的な言葉は知っているのであれば、自分でわかるはずなのですが。だから釣りを疑ってます。 色は設定によって違うし質問者さんが貼った画像はつぶれていて見えません。釣りとかでなくてホントに知りたいなら少なくともちゃん読める画像を貼りましょう。また、質問する前に自分で調べて、どうしてもわからない点を質問するようにしましょう。読んでください⇒ https://teratail.com/help/question-tips
rtyy

2022/08/31 02:00

SurferOnWww ご返信ありがとうございます。 検索し調べてみましたが、わからず今回質問させていただきました。 また画像の修正をいたしましたのでご確認のほどよろしくお願いいたします。
退会済みユーザー

退会済みユーザー

2022/08/31 02:15

> また画像の修正をいたしましたのでご確認のほどよろしくお願いいたします。 肝心の部分だけにトリムしてから貼るという発想はないのですか?
rtyy

2022/09/01 02:47

SurferOnWww コメントへのご返信ありがとうございます。 ご指摘ありがとうございます。 今後そのようにいたします。
退会済みユーザー

退会済みユーザー

2022/09/01 03:37

> 今後そのようにいたします。 今やりましょう。あなたが立てたスレッドですが、あなた専用の Q&A の場ではないのです。Teratail は「プログラミングに関して本当に困っている人をサポートすること、また、価値のあるコンテンツを世の中に残し届けることを目的としています」ということですので、ここを利用させてもらっている以上質問内容もきちんとしませんか?
rtyy

2022/09/02 06:03

SurferOnWww コメントへのご返信ありがとうございます。 再度質問欄にトリミング後の画像を添付しました。 よろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問