39321


御覧の様に、`Int32`である配列の指数を取得し、これをByteに変換してみましたが、どういう訳か「stringに変換する事ができません」と表示されます:

[![画像の説明をここに入力](https://i.stack.imgur.com/4TXhr.png)](https://i.stack.imgur.com/4TXhr.png)

`Byte someEntityNumber = Byte.Parse(Array.IndexOf(entities, someEntitiy));`を
`Int32 someEntityNumber = Array.IndexOf(entities,
someEntitiy);`にしますと、エラー表示がなくなります。

`SomeEntity`について情報が必要でしたら、このようなクラスになります：

[code]

    class SomeEntity : INotifyPropertyChanged  {
    
        public SomeEntity() {
    
        }
    
        private Boolean someProperty = false;
        public Boolean SomeProperty { 
            get => someProperty;
            set {
                someProperty = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(someProperty)));
            }
        }
    
        public event PropertyChangedEventHandler PropertyChanged;
    
    }
    
[/code]


CC BY-SA 3.0
2017-11-06T00:30:45.220
39320
2017-11-06T00:40:58.190
16876
question
c#
Array.IndexOf()をByteに変換したかったですが、「stringに変換できません」と表示されました


[Array.IndexOf()](https://msdn.microsoft.com/ja-
jp/library/eha9t187\(v=vs.110\).aspx)の戻り値は`int`型です。`int`型から`byte`型への変換は[明示的変換](https://docs.microsoft.com/ja-
jp/dotnet/csharp/programming-guide/types/casting-and-type-
conversions#explicit-conversions)が必要です。

[code]

    int someEntityNumber = Array.IndexOf(entities, someEntitiy);
    // or
    byte someEntityNumber = (byte)Array.IndexOf(entities, someEntitiy);
    
[/code]

なお`Byte.Parse()`は

> 数値の文字列形式を、それと等価の Byte に変換します。

と説明されているように文字列を解析するメソッドです。


CC BY-SA 3.0
2017-11-06T00:40:58.190
39321
2017-11-06T00:40:58.190
4236
39320
answer