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

質問編集履歴

3

a

2018/02/28 08:17

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -16,13 +16,13 @@
16
16
  if(x.Key == "zzz")
17
17
  {
18
18
  // stringはパターンが少ないので個別に分岐
19
- ret += System.Text.Encoding.ASCII.GetBytes((string)dictionary[x.Key]);
19
+ ret += System.Text.Encoding.ASCII.GetBytes((string)x.Value);
20
20
  }
21
21
  else
22
22
  {
23
- var type = dictionary[x.Key].GetType();
23
+ var type = x.Value.GetType();
24
24
  // ここでキャストを行わないと落ちる ↑のtypeを使用してキャストしたい
25
- ret += BitConverter.GetBytes(dictionary[x.Key]);
25
+ ret += BitConverter.GetBytes(x.Value);
26
26
  }
27
27
  }
28
28
  }

2

2018/02/28 08:17

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -30,4 +30,6 @@
30
30
 
31
31
  `Convert.ChangeType()`は戻り値が`object`なので意味がありませんでした。
32
32
  実際の`Dictionary`の要素数は300以上あり、そのうち`string`の値は10件にも満たないのですべて列挙し`if`で分岐させています。
33
- 数値型のほうが正しくキャストできていないと堕ちてしまうのでどうにかキャストを試みたのですが`ChangeTyep()`にしか検索に引っかかりませんでした。
33
+ 数値型のほうが正しくキャストできていないと堕ちてしまうのでどうにかキャストを試みたのですが`ChangeTyep()`にしか検索に引っかかりませんでした。
34
+
35
+ 上のような流れで型が不定の`object`を動的にキャストできる方法はありませんでしょうか

1

2018/02/28 08:00

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -21,7 +21,7 @@
21
21
  else
22
22
  {
23
23
  var type = dictionary[x.Key].GetType();
24
- // ここでキャストを行わないと落ちる
24
+ // ここでキャストを行わないと落ちる ↑のtypeを使用してキャストしたい
25
25
  ret += BitConverter.GetBytes(dictionary[x.Key]);
26
26
  }
27
27
  }