ふらっと C#,C♯,C#(初心者用) Part148

レス数が950を超えています。1000を超えると書き込みができなくなります。
2020/05/27(水) 10:14:39.92ID:wHIUQvvs
■前スレ
ふらっと C#,C♯,C#(初心者用) Part147
http://mevius.5ch.net/test/read.cgi/tech/1582100741/
■関連スレ
C#, C♯, C#相談室 Part94
http://mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
2020/09/13(日) 02:28:45.05ID:B0Qk5cLa
>>850
ほとんど使われていないってどこ情報?そしてASP.NET MVCについて全く触れていないのはなぜ?
2020/09/13(日) 07:10:27.23ID:3Iu47hUo
winformsで勉強してもASP.NETとは殆ど関係無いからなぁ
webアプリ作りたいなら、素直にPHPなどのサーバーサイド側の言語と
フロントエンド側のjavascript等を勉強した方がいいと思う
windowsアプリもelectronなどで作った方が今は良いかも知れない
2020/09/13(日) 10:15:51.35ID:S4pGSahN
windowsのデスクトップアプリをelectronはデプロイが面倒でのう
854デフォルトの名無しさん
垢版 |
2020/09/13(日) 10:20:37.14ID:XLuhIw+a
安全性等、ライトウエイト言語勢に比べてASP.Net coreにアドバンテージがある点も多くあるけどさ
ただ、今から始めるもんじゃないわ
2020/09/13(日) 10:40:37.32ID:B0Qk5cLa
いやPHPはねーよ…
2020/09/13(日) 10:42:43.96ID:d/ryA4WH
ASP.NET MVCやASP.NET Core MVCは
Webアプリのフレームワークとしてはオーソドックスでわかりやすいので
C#理解してる人がWebアプリの作り方を学ぶ目的なら一番いい

業務アプリとしての需要はそこそこあるし
他言語でWebアプリ作る場合でも基本は同じだから無駄にはならないよ

他の言語、特にJavaScriptとかスクリプト系の言語を
C#と同じレベルで使えるならそっちで学ぶのもあり
2020/09/13(日) 13:14:52.60ID:ypa++uC2
世界的に見ると業務システムでのASP.NET(Core含む)の採用は実はかなり多いと聞いたことがあるがソースがねえんだよな
WEB系では複雑怪奇なドメインを安全確実に実装するという需要が少ないからかスクリプト言語ばっかり
858デフォルトの名無しさん
垢版 |
2020/09/13(日) 13:44:19.92ID:BWD1TNNw
プログラミングの発想に
マイクロソフトも使ってる大麻
そのオイルのユーザーレビュー特集 http://shop-rakuten-ch.2chblog.jp/archives/6406884.html

こちらは1万円で買える Windows10搭載ノートパソコン
http://shop-rakuten-ch.2chblog.jp/archives/7030035.html

フリーウェアやシェアウェア、キャリアアップなどにご利用ください
日本も解禁しましょう
2020/09/13(日) 13:46:43.05ID:7u18v5bo
プマそ、まで読んだ
2020/09/13(日) 14:09:19.50ID:2mV3y2ns
C#は言語としては好きだけどASP.NET COREはそんなに好きじゃない
JavaのJSFのようなエンタープライズフレームワークが欲しい
2020/09/13(日) 15:35:08.60ID:B0Qk5cLa
>>860
なんで好きじゃないの?
2020/09/13(日) 15:47:30.54ID:bi+be7V2
>>861
全体的に嫌いというわけではなくビューエンジンが微妙ってカンジだな
部分ビューの非同期更新とか面倒くさいじゃん
2020/09/13(日) 17:00:13.32ID:B0Qk5cLa
>>862
それがJSFだとどう改善されるの?
2020/09/13(日) 17:04:44.85ID:zkzBJL4I
>>863
面倒な手続きなく実装できるようになる
2020/09/13(日) 17:11:41.66ID:Xp7zp8nz
JSFってJavaBeans使うんだっけ。
プロパティが反映されなくて調べまくったらgetterのスペルミスというオチだった思い出。
2020/09/13(日) 19:19:02.80ID:B0Qk5cLa
>>864
具体的には?
867デフォルトの名無しさん
垢版 |
2020/09/13(日) 19:46:19.11ID:e9EK7dt7
面倒とかいってるから日本は貧乏くさいウェブサイトしかないのかな
2020/09/13(日) 20:08:48.26ID:X0wiqlNd
>>860
じゃあ初心に戻ってアセンブラは?
2020/09/13(日) 21:28:56.21ID:3Iu47hUo
>>855
いやASP.NETなんかより遥かに需要も利用もされているよ
pythonとか言う人いるけどwebで開発だと微妙だしな
node.jsでexpressとかもあるけど、まぁPHPが一番無難かと思うよ
2020/09/13(日) 22:21:31.38ID:D3NoWaWo
需要があるから良いものってわけでもない
2020/09/13(日) 23:26:29.40ID:B0Qk5cLa
>>869
正気かよ…
2020/09/14(月) 08:52:11.41ID:h4D3dIgF
PHPってExcel方眼紙のようなもの
2020/09/14(月) 11:51:52.79ID:3/OLw0Bw
神PHPもあるのかな
2020/09/14(月) 22:25:18.13ID:kZod4u98
でも田舎土方はPHPばっかりな事実
2020/09/14(月) 22:43:22.93ID:zcgwn94o
土方目指すんならPHPでいいんじゃね?
2020/09/15(火) 00:16:30.29ID:2odR6mEp
VB6でもやってろ禿
2020/09/15(火) 01:04:55.79ID:uGwrRbLz
何回も出た話題なのかもしれんけどASP.NET とCOREの違いがわかりません
COREは上位互換なの?
878デフォルトの名無しさん
垢版 |
2020/09/15(火) 03:54:59.13ID:pnTNLJvZ
>>876
わたしはハゲとらん、アホ
2020/09/15(火) 10:14:14.37ID:TyfOfY37
ハゲてるのでVB6やってきます
2020/09/15(火) 10:14:30.69ID:QmZZ3Onl
>>877
ASP.NET Coreは.NET Coreへの移行にあわせて作り直した新しいWebフレームワーク
WebFormsは完全に廃止されているので、業務系にとっては名前が似ているだけで概念レベルから根本的に全くの別物と思っておけばよい
なおASP.NET MVCをベースにしてはいるがMVCとも互換性はない
881デフォルトの名無しさん
垢版 |
2020/09/15(火) 10:33:20.79ID:nbPbSfcD
>>879
VB6やるからハゲるのだ
2020/09/15(火) 12:04:51.67ID:IfSXNbex
>>877
ASP.NET
.NETベースのWebフレームワーク・関連技術の総称

ASP.NET Web Forms
Winformsを使ったデスクトップ開発に近い感覚でWebアプリを作れるようにしたフレームワーク
ビジュアルデザイナでFormを作ってそのFormに紐づくコードビハインドにイベントハンドラを書いていくスタイル
一般的なWebフレームワークとは違って独特

ASP.NET MVC
Railsを参考に作られたMVCアーキテクチャのWebフレームワーク
他言語の一般的なWebフレームワークと類似してるがWindows/IIS上でしか動かない

ASP.NET Core MVC
ASP.NET MVCを.NET Coreベースで作り直してマルチプラットフォーム化したもの
Windows/IIS上だけでなく、LinuxやmacOS、NginxやApache上でも動く

MVCとCore MVCの細かい違いはリファレンス見て
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/choose-aspnet-framework?view=aspnetcore-3.1
2020/09/15(火) 12:24:07.25ID:uGwrRbLz
>>880 >>882
どうもありがとうございます
Apacheで動かそうとしたら.NET CORE一択なんですね
884デフォルトの名無しさん
垢版 |
2020/09/15(火) 12:46:49.79ID:7m8e8jTL
Apacheをリバースプロキシに使うのは、何気にASP.Net Coreとの相性がいいな
特にフリーウエアでクッキーベースのロードバランサを作れるのは珍しい
2020/09/15(火) 14:24:19.34ID:5uVwOM3u
リバースプロキシ・ロードバランサーと言えば、Nginx
2020/09/15(火) 14:32:02.93ID:dHOvpMD8
昨日までthis付ける派だったんだけど
新しくベクトル系の構造体作ったらthis this thisthis...って並んでて発狂しそうになった

xの一文字を指定する為にthis.の五文字打つのが凄まじく無駄な気がしてならない
悔い改めるべきなのかな…
2020/09/15(火) 15:20:03.22ID:DLlVy6Pm
>>882
この乱立したゴミフレームワークひでえな
2020/09/15(火) 15:23:25.82ID:0YuOoQv0
合理性は?と自問して答えられないようなのはただの思い込みだろうね。
明示的にthisを付けるべき場面がそうそうあると思えない
2020/09/15(火) 17:37:50.28ID:dHOvpMD8
>>888
this.と打つ分だけ仕事してる感が増す
これは結構大きいと思う
2020/09/15(火) 18:03:53.96ID:MkCz/lj0
>>889
数万行のコード保守すること考えたら5文字の違いは大きいよな!
…つまらんことにこだわるのは他で成果が出せないからだ
2020/09/15(火) 18:26:46.69ID:QeyXg+3+
コードクリーンアップで全箇所にthisを自動でつけるのできなかったっけ?
this消すはできた気がするけど
2020/09/15(火) 19:19:35.90ID:2odR6mEp
なにthisってんの
893デフォルトの名無しさん
垢版 |
2020/09/15(火) 19:38:44.93ID:7m8e8jTL
>>885
ASP.Net Coreのサイトでロードバランシングしたかったら無料版じゃできないぜ
2020/09/15(火) 21:06:33.62ID:U3NCutqA
>>893
そうなん?
2020/09/16(水) 00:29:08.20ID:lvCIVXxG
>>885
これいつも読み方忘れる
2020/09/16(水) 00:30:44.63ID:ExNaveLa
>>893
え?
2020/09/16(水) 08:27:32.45ID:yr1DUgCH
>>895
にんじんX(違
2020/09/16(水) 08:29:23.52ID:Z3vQBqB4
VB6/WinRT
2020/09/16(水) 08:57:50.10ID:DLCjHrlg
>>895
んぐんぐ
2020/09/16(水) 14:07:28.69ID:vxKpYawZ
初めて.NETCoreで作ったんだけどビルドすると単純なコンソールアプリなのにexeのファイルサイズが170KBくらいあるのはどういうこと?
2020/09/16(水) 14:38:31.56ID:6Cheug9B
>>900
ランタイムにあたる部分を内包しているから
無駄が多いとか思ってもMSがそう作っているんだからどうしようもない
2020/09/16(水) 14:49:33.33ID:AOSIq8NT
最近覗いてみたソースがこんな風に都度新しく生成して返すようになってたんだけどさ

return new float3(l.x + r.x, l.y + r.y,...)

こういうのって直接フィールド書き換えるよりパフォーマンス良かったりするの?
2020/09/16(水) 15:14:47.83ID:t9nFTYZt
生成したオブジェクトをどう使うか分からないから回答できません。

次の方どうぞ
2020/09/16(水) 15:18:23.06ID:BkyZoSl2
値型だしどうせコピーするんだからどっちでもええやろ
905デフォルトの名無しさん
垢版 |
2020/09/16(水) 15:44:35.74ID:wZC9/K7G
C#なら普通
906デフォルトの名無しさん
垢版 |
2020/09/17(木) 05:54:26.40ID:d2VQcRA0
float3とやらがイミュータブルなclassとして設計されているんじゃないか?
2020/09/17(木) 09:17:47.87ID:6rmLHuYh
>>902
汎用化できる余地のためにそうしてるのでは?
値型という前提で話すと、確かにフィールド直接書き換えの方がコピー1回分減るはず(float x 3程度のサイズなら無視できるパフォーマンス差だけど)
ただしそれだとそのフィールド専用のメソッドになってしまう
2020/09/17(木) 12:22:42.65ID:K+TDBLvS
=を多用するような数学的な型で事情があって参照型にする必要があるなら
まともな頭の人ならイミュータブルにするよね
2020/09/17(木) 15:02:10.43ID:6rmLHuYh
float3ってVector3でしょ
2020/09/18(金) 22:50:39.21ID:OlXrbJiY
初学者です
visual studio 2019 comunityでコンソールアプリをつくって勉強しています

製品A 大部品α 小部品T
製品B 大部品β 小部品U
製品A 大部品β 小部品V
・・・
という対応表を読み込み、製品Aを入力したら1行目と3行目を返すプログラムを考えています

この例では列が3ですが、対象によっては2〜5など変わり
列も年齢だったり役職だったり地名だったりするため、Class Person のageやnameのような型を固定出来ません
List<List<string>>とstring型の入れ子Listを作りデータを入れることは出来たのですが
勉強でLinqを使おうとしたのですが、うまくとりだせずスタックしています

すべての行をstring連結して一次元配列にし、Containで対象を取り出し、
出力時に結合文字をsplitする、というやり方以外の方法を教えてください

ありがとうございます
2020/09/18(金) 23:02:19.22ID:lOTfajhS
>>910
用途にもよるけど
とりあえず読み込む対象に応じた型を用意したらいいんじゃないの?

部品表を読み込むなら部品用の型に
従業員表を読み込むなら従業員用の型にする
2020/09/18(金) 23:24:08.87ID:CE0cDKtm
>>910
class 製品
{
public string 製品名;
public string 大部品;
public string 小部品;
public override string ToString() => $"{製品名} {大部品} {小部品}";
}
var item = new 製品();
item.製品名 = "製品A";
List<製品> list = new List<製品>();
list.Add(item);

製品名が"製品A"のものを取り出したいときはList<製品> listに対して
var result = list.Where(x => x.製品名 == "製品A").ToArray(); //これで製品Aだけの配列が返ってくる

プログラミング自体初心者なのであれば、Linqより先にforeach (var x in list) if (x.製品名 == "製品A") Console.WriteLine(x.ToString());
というループ+if文による原始的な判別の方から入ったほうが分かりやすいと思う
Linqはラムダ式やら遅延評価やら初心者には理解しづらい概念が多いから
2020/09/18(金) 23:32:00.69ID:OlXrbJiY
>>911
>>912
こんな時間にもかかわらずありがとうございます

やはりclass製品と対象にあったクラスを設計するのが王道なのですね
具体のプログラム指針まで示して頂き感動しました

早速ためしてみようとおもいます
2020/09/19(土) 00:15:08.80ID:N4ZzMqlk
なんか優しい流れになっててワロタw
いや、5chもせっかく人が激減したんだからこういうのが普通の場所になってほしいよねそろそろ
2020/09/19(土) 02:46:08.93ID:WDvdygP5
よくわからんけどよそはもっとギスギスしてるの?
2020/09/19(土) 06:35:51.73ID:JSd39pzr
>>910
同じくビギナーだけど、こんなことがしたいんじゃないかって思った
目的:
1.表の1列目データを使って検索して、マッチした行データの1個目と3個目を返す
2.列数の異なった表に対応したい
3.多次元のListでLINQを使いたい
違ってたらすんません

//2次元のListを作る(適当)
var list = new List<List<string>>();
list.Add(new List<string> { "A", "a", "1" });
list.Add(new List<string> { "B", "b", "2" });
list.Add(new List<string> { "C", "c", "3" });


Console.Write("製品名を入力してください(A,B,Cのいずれか):");
var searchWord = Console.ReadLine();
var result = list.Where(x => x[0] == searchWord).Select(x => x);

foreach (var item in result)
{
Console.WriteLine("製品名" + item[0] + " 小部品" + item[2]);
}
2020/09/19(土) 10:46:24.73ID:QRdtXGAm
>>915
名前は出さんけどほかの言語のスレはくだらねー煽りあいしてるとこ結構ある
2020/09/19(土) 11:50:06.05ID:rQqkhAHw
こんなのもあるよね。

1) var data = new object[] { new { model = "製品A", parts1 = "大部品", parts2 = "小部品" } ... 以下略
2) var CLASS = new Reflection.DynamicClass( ... ); CLASS.AddProperty( "[プロパティ名]", [プロパティの型] ); var inst = CLASS.CreateInstane(); inst.[プロパティ名] = ... 以下略

1 の方はそこでしか使わない単純なデータ型にたまに使うかな。
2 は面倒くさすぎるから滅多にやらない。
ビギナーのうちにいろいろ失敗しておくと後が楽。かも。
2020/09/19(土) 14:40:50.79ID:iNSc+wes
>>917
シェルスクリプトスレ、Pythonスレ、VBAスレ。
CやC++も酷い時がある。

共通項を理解しておくと技術や人の選定に役立つ
2020/09/19(土) 14:54:59.03ID:fEw8E5B5
時間がかかってしまいましたが作ることができました
楽しいですね、ありがとうございます

>>916
Linqはそのとおりです
1列目だけでなく、他の列でも引っかかるようにするため、
foreachを使ったバージョンでは全体検索
Linqを使ったバージョンではresult1とresult2を用意し、それぞれs.製品 b.部品・・・といった形で対応しました

追加でお付き合いください

[1]class製品でプログラムを作った場合、csvやexcelなどからデータを取得する際、
List<string> rows = new List<string>();
foreach (var cell in currentRow.Cells("1")) // colmunA
{
rows.Add(cell.GetString());
}
製品.Add(new 製品(rows[0], rows[1], rows[2]));
といった形で取得しました
ネットのサンプルプログラムでは数データをコードに直接打っているものは見ましたが
//{製品.製品名="zzz",製品.大部品="yyy",製品.小部品="xxx"}というような
ループを使って取得する場合、itemのようなバッファは必須でしょうか?

[2]今作ったプログラムではclass製品に特化しているため、methodなどはList<製品>で作っています
<T>とすることで<製品>や<会社>などに対応出来るジェネリックという仕組みを知りましたが
classのメンバ変数は対応表ごとに作る必要がありますか?
>>918 の2の例が答えになるかとおもい調べています


読んで頂きありがとうございます
921デフォルトの名無しさん
垢版 |
2020/09/19(土) 15:36:42.05ID:4RgVivY3
後出し禁止
2020/09/19(土) 16:00:13.10ID:2HkJedVD
>>920
>classのメンバ変数は対応表ごとに作る必要がありますか?

必要かもしれないし必要ないかもしれない
扱う対象と用途次第

ただ初心者なら最初から汎用的な実装を実現しようとせずに
めんどくさくてもまず冗長な実装をしてから
必要に応じて汎用化することを考えたほうがいい
2020/09/19(土) 16:26:06.33ID:sBNFMd+f
static string[] 製品列名 = new string[] { "製品名", "大部品", "小部品" };

Dictionary<string, string> ToMap(this List<string> row, string[] columnNames) => Enumerable.Range(0, columnNames.Length)
.ToDictionary(i => columnNames[i], i => row[i])

foreach(var 製品 in rows.Select(r => r.ToMap(製品列名))) {
Console.Write(製品["製品名"]);
Console.Write(製品["大部品"]);
}

これでいいよ
ただのテーブル処理なのだから行をいちいちクラスにする必要はない
製品が特有の振る舞いを持ち始めたらクラスにすればいい
2020/09/19(土) 18:27:25.65ID:OpaSx1VV
みづらっ
2020/09/19(土) 19:19:32.75ID:eWy/siAc
>>923
辞書をExpandoObjectにすれば完璧だね

IEnumerable<List<string>> rows = MyParser.Parse(src);
var query = rows.Select(row => row.ToDynamic("ProductName", "Part1", "Part2"));

foreach(var x in query) WriteLine($"{x.ProductName}, {x.Part1}, {x.Part2}");
2020/09/19(土) 19:37:35.17ID:JYpVkYaa
行ごとに文字列出力してる時点で特有の振る舞いしてる
2020/09/19(土) 19:47:03.76ID:x3FdUm9j
なんか質問と回答が微妙に噛み合ってないような気もするけど
正直質問者さんが結局何が聞きたいのか何度読んでも読み取れないので何も言えんw
2020/09/19(土) 20:10:04.96ID:EqM+rWOJ
>>918,923,925 は俺こんなテク知ってるぜ、すげーだろって言うガキでしょ
初心者スレではマジ邪魔
2020/09/19(土) 20:19:53.08ID:fEw8E5B5
基本をしっかりしてからとのこと承知いたしました
辞書については当初考えたのですが、重複あり得るため棄却しました
身に余るご助言につきましてもキーワードを手がかりに勉強をしています
出発点のわたしの質問がずれていたり、仕様が不明瞭なため
みなさまには様々斟酌いただいてしまい申し訳ございませんでした

この度は大変勉強になりました
ありがとうございました
2020/09/19(土) 20:41:07.69ID:WDvdygP5
そういえばここ初心者スレでしたね
2020/09/19(土) 20:59:28.92ID:BsD2hr5g
>>928
いたって初歩的な言語機能だけど
2020/09/19(土) 21:42:06.16ID:QNMXm6ew
パパ、RDBにデータ入れちゃうぞ
2020/09/19(土) 21:43:20.81ID:2tMnMl7Y
>>931
初心者が使うのかよw
そもそも>>924が言うように見辛いし
2020/09/19(土) 23:11:34.63ID:BsD2hr5g
>>933
見やすいが?
目おかしんじゃないの
935デフォルトの名無しさん
垢版 |
2020/09/19(土) 23:22:10.91ID:KiLpFWrg
>>934
ところで君は高卒かい?
2020/09/19(土) 23:25:26.82ID:BsD2hr5g
変なのに絡まれちゃったな
2020/09/19(土) 23:34:19.61ID:WzAffn6e
>>928
なんか変なのいるよね
何で初心者スレでそんなの書くんだよ
ってクソ
早くくたばれよな
2020/09/20(日) 03:23:39.76ID:klWtW47E
>>934
> 目おかしんじゃないの
お前は頭が…ww
2020/09/20(日) 05:58:27.94ID:zkC0RRI1
お前らそんなとこでムキになるなよ
エネルギーの無駄
2020/09/20(日) 06:10:09.41ID:04W6zQEw
>>923
List<string>を対象とした拡張メソッドをラムダ式で書いたものですか
メソッドの内容は引数の配列をkey、List<string>をvalueとするDictionaryの生成

rows.Select(r => r.ToMap(製品列名))
の部分で入れ子になったList<string>を1つずつToMapでDictionaryに変換していく

なるほどー
面白かったです
2020/09/20(日) 06:15:58.11ID:PjKYg0xs
ショートカットキーの中にはvisual studioのCtrl + K, Ctrl + Dのように、特定のキーと就職キーを押した後に更に押したキーで判定するものがあるけど、winformsでどう実装したらいいのかな?

検索してもよくあるControl+キー一回分のしかヒットしない……
2020/09/20(日) 14:18:44.02ID:ostrIPo9
入力履歴をどっかに保存しておけばいいよ
2020/09/20(日) 23:19:27.09ID:q0HaTbqo
>>941
ToolStripMenuItemsを継承してサクッとできるだろ...と思ったけど
ちょっとやってみた感じ意外とハードル高そうw

いい感じで出来たら是非シェアして欲しい
2020/09/21(月) 14:38:23.53ID:VOZ/uMsJ
>>941
「C# キー同時押し」でググれば出てくるように見えるが?
特定のキーと修飾キーの「後にさらに押したキー」じゃなく単純に同時押しならKeyDownイベントでWinAPIのGetKeyboardStateかGetKeyStateを使ってキーボードの状態を参照
2020/09/21(月) 16:07:11.47ID:IbOijUaT
が?
偉そうに素っ頓狂なことをいうテストかなw
2020/09/21(月) 16:22:28.33ID:fotjvOj5
ctrl k d みたいなタイプのショートカットキー使ったこと無いんでしょ
こういうタイプみるようになったの割と最近だと思うから
947デフォルトの名無しさん
垢版 |
2020/09/21(月) 16:45:04.47ID:G1EXro4t
10年以上前からあったよな
2020/09/21(月) 16:46:57.36ID:0qqDKwic
機能的にはなんていう名前なん?
949デフォルトの名無しさん
垢版 |
2020/09/21(月) 16:53:16.29ID:2PWsXAVJ
>>946
馬鹿は黙っていればいいのに
2020/09/21(月) 17:07:58.59ID:+MA8+KhA
Rx使ってシンプルに実装してるの見たことあるがどこで見たのかは忘れた
モードの状態遷移を管理しないといけないから少し面倒だよね

>>948
Visual Studio用語ではchordとかkey chord
レス数が950を超えています。1000を超えると書き込みができなくなります。