回答編集履歴

6

文章の修正

2019/11/01 02:36

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
 
34
34
 
35
- `Fmain`は`Form`を継承し、`Form`は`MarshalByRefObject`を継承ています。
35
+ `Fmain`は`MarshalByRefObject`から派生するクラスに該当します。
36
36
 
37
37
  つまり、`Fmain`が持つ値型のメンバ(`onum`)に対してメソッドを呼び出さないよう、下記のように値をコピーしてから`ToString`を呼び出す必要があります。
38
38
 

5

エラーではなく警告。

2019/11/01 02:36

投稿

BluOxy
BluOxy

スコア2663

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

文章の修正

2019/11/01 02:35

投稿

BluOxy
BluOxy

スコア2663

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

追記と文書の構成を変更

2019/11/01 02:32

投稿

BluOxy
BluOxy

スコア2663

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

文章の修正

2019/11/01 02:29

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -1,8 +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
4
 
5
- まずはif文を除去するなどして、構文的に問題ない形に変更してからコンパイルエラーが出ていないかを確認してください。
5
+ if文を除去するなどして、構文的に問題ない形に変更してからコンパイルエラーが出ていないかを確認してください。
6
6
 
7
7
  ```C#
8
8
 

1

文章の修正

2019/11/01 02:24

投稿

BluOxy
BluOxy

スコア2663

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