teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

6

文章の修正

2019/11/01 02:36

投稿

BluOxy
BluOxy

スコア2663

answer CHANGED
@@ -15,7 +15,7 @@
15
15
 
16
16
  > この警告は、MarshalByRefObject から派生するクラスの値型のメンバーに対して、メソッド、プロパティ、またはインデクサーを呼び出そうとした場合に発生します。
17
17
 
18
- `Fmain`は`Form`を継承し、`Form`は`MarshalByRefObject`を継承ています。
18
+ `Fmain`は`MarshalByRefObject`から派生するクラスに該当します。
19
19
  つまり、`Fmain`が持つ値型のメンバ(`onum`)に対してメソッドを呼び出さないよう、下記のように値をコピーしてから`ToString`を呼び出す必要があります。
20
20
  ```diff
21
21
  - string aaa = main.onum.ToString();

5

エラーではなく警告。

2019/11/01 02:36

投稿

BluOxy
BluOxy

スコア2663

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

文章の修正

2019/11/01 02:35

投稿

BluOxy
BluOxy

スコア2663

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

追記と文書の構成を変更

2019/11/01 02:32

投稿

BluOxy
BluOxy

スコア2663

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

文章の修正

2019/11/01 02:29

投稿

BluOxy
BluOxy

スコア2663

answer CHANGED
@@ -1,6 +1,6 @@
1
- まず、`if (string aaa = main.onum.ToString())`とifの条件内でaaaを宣言していたり、代入を行っていたりしますが、これ等は全て構文エラーです。
1
+ `if (string aaa = main.onum.ToString())`とifの条件内でaaaを宣言していたり、代入を行っていたりしますが、これ等は全て構文エラーです。
2
2
 
3
- まずはif文を除去するなどして、構文的に問題ない形に変更してからコンパイルエラーが出ていないかを確認してください。
3
+ if文を除去するなどして、構文的に問題ない形に変更してからコンパイルエラーが出ていないかを確認してください。
4
4
  ```C#
5
5
  public void Pr()
6
6
  {

1

文章の修正

2019/11/01 02:24

投稿

BluOxy
BluOxy

スコア2663

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
  ```