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