回答編集履歴
6
文章の修正
test
CHANGED
@@ -32,7 +32,7 @@
|
|
32
32
|
|
33
33
|
|
34
34
|
|
35
|
-
`Fmain`は`
|
35
|
+
`Fmain`は`MarshalByRefObject`から派生するクラスに該当します。
|
36
36
|
|
37
37
|
つまり、`Fmain`が持つ値型のメンバ(`onum`)に対してメソッドを呼び出さないよう、下記のように値をコピーしてから`ToString`を呼び出す必要があります。
|
38
38
|
|
5
エラーではなく警告。
test
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
|
24
24
|
|
25
|
-
#
|
25
|
+
# 警告について
|
26
26
|
|
27
27
|
[コンパイラの警告 (レベル 1) CS1690](https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/compiler-messages/cs1690)
|
28
28
|
|
4
文章の修正
test
CHANGED
@@ -32,7 +32,9 @@
|
|
32
32
|
|
33
33
|
|
34
34
|
|
35
|
-
|
35
|
+
`Fmain`は`Form`を継承し、`Form`は`MarshalByRefObject`を継承しています。
|
36
|
+
|
37
|
+
つまり、`Fmain`が持つ値型のメンバ(`onum`)に対してメソッドを呼び出さないよう、下記のように値をコピーしてから`ToString`を呼び出す必要があります。
|
36
38
|
|
37
39
|
```diff
|
38
40
|
|
3
追記と文書の構成を変更
test
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# 最初に
|
2
|
+
|
1
3
|
`if (string aaa = main.onum.ToString())`とifの条件内でaaaを宣言していたり、代入を行っていたりしますが、これ等は全て構文エラーです。
|
2
4
|
|
3
5
|
|
@@ -17,3 +19,27 @@
|
|
17
19
|
}
|
18
20
|
|
19
21
|
```
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
# エラーについて
|
26
|
+
|
27
|
+
[コンパイラの警告 (レベル 1) CS1690](https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/compiler-messages/cs1690)
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
> この警告は、MarshalByRefObject から派生するクラスの値型のメンバーに対して、メソッド、プロパティ、またはインデクサーを呼び出そうとした場合に発生します。
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
とのことなので、下記のように書き直すと良さそうです。
|
36
|
+
|
37
|
+
```diff
|
38
|
+
|
39
|
+
- string aaa = main.onum.ToString();
|
40
|
+
|
41
|
+
+ int value = main.onum;
|
42
|
+
|
43
|
+
+ string aaa = value.ToString();
|
44
|
+
|
45
|
+
```
|
2
文章の修正
test
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
|
1
|
+
`if (string aaa = main.onum.ToString())`とifの条件内でaaaを宣言していたり、代入を行っていたりしますが、これ等は全て構文エラーです。
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
|
5
|
+
if文を除去するなどして、構文的に問題ない形に変更してからコンパイルエラーが出ていないかを確認してください。
|
6
6
|
|
7
7
|
```C#
|
8
8
|
|
1
文章の修正
test
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
-
まず、`if (string aaa = main.onum.ToString())`とifの条件内でaaaを宣言していたり、代入を行っていたりしますが、これ等は構文エラーです。
|
1
|
+
まず、`if (string aaa = main.onum.ToString())`とifの条件内でaaaを宣言していたり、代入を行っていたりしますが、これ等は全て構文エラーです。
|
2
2
|
|
3
3
|
|
4
|
+
|
5
|
+
まずはif文を除去するなどして、構文的に問題ない形に変更してから、コンパイルエラーが出ていないかを確認してください。
|
4
6
|
|
5
7
|
```C#
|
6
8
|
|
@@ -10,7 +12,7 @@
|
|
10
12
|
|
11
13
|
Fmain main = new Fmain();
|
12
14
|
|
13
|
-
string aaa = main.onum.ToString()
|
15
|
+
string aaa = main.onum.ToString();
|
14
16
|
|
15
17
|
}
|
16
18
|
|