回答編集履歴
2
最後の一文追加
answer
CHANGED
@@ -24,4 +24,7 @@
|
|
24
24
|
`Split(new char[] { '\n' })`
|
25
25
|
|
26
26
|
詳しくは下記URLを参考にしてみてください
|
27
|
-
http://ufcpp.net/study/csharp/sp_params.html
|
27
|
+
http://ufcpp.net/study/csharp/sp_params.html
|
28
|
+
|
29
|
+
因みになんで `'\n'` という簡単な指定を使わず `"\n"[0]` といった遠回しな使い方をするかは**わかりません**
|
30
|
+
(C++メインで使ってた人が書いたコードなのかな??)
|
1
説明補足
answer
CHANGED
@@ -5,23 +5,23 @@
|
|
5
5
|
まず`string`型は`[n]`を指定することでそれぞれ`n文字目`を`char`型で取得することができます。
|
6
6
|
その為 `"\n"[0]` は `'\n'` と同値になります。
|
7
7
|
|
8
|
-
次に何故`"\n"`はダメで`'\n' or "\n"[0]`がOKなのかと言いますと、
|
8
|
+
次に何故引数に`"\n"`はダメで`'\n' or "\n"[0]`がOKなのかと言いますと、
|
9
9
|
Split関数は第1引数に`string型`の配列か`char型`の配列に加え
|
10
10
|
可変長引数(好きな数引数を指定できるもの)の`char型`を指定することができます。
|
11
11
|
|
12
12
|
可変長引数とは
|
13
13
|
`Split('a', 'b', 'c')`みたいに指定することができ、
|
14
|
-
内部的には `Split(new char[] { 'a', 'b', 'c' })` と
|
14
|
+
内部的には `Split(new char[] { 'a', 'b', 'c' })` と変換してくれるような感覚です。
|
15
15
|
そしてこの可変長引数はいくつでも指定できる≒引数の数が一つでもOKということです。
|
16
16
|
|
17
|
-
それを踏まえるとこちらの指定は
|
17
|
+
それらを踏まえるとこちらの指定は
|
18
18
|
`Split("\n"[0]);`
|
19
19
|
|
20
|
+
このような指定の意味になり(`string`の最初の要素にアクセスして`char`取得)
|
20
21
|
`Split('\n')`
|
21
|
-
このような指定の意味になり(stringの最初の要素にアクセスしてchar取得)
|
22
22
|
|
23
|
+
最終的にこの様な意味になります。(可変長引数から要素が一つの`char`型配列作成)
|
23
24
|
`Split(new char[] { '\n' })`
|
24
|
-
最終的にこの様な意味になります。(可変長引数から配列作成)
|
25
25
|
|
26
26
|
詳しくは下記URLを参考にしてみてください
|
27
27
|
http://ufcpp.net/study/csharp/sp_params.html
|