Cannot implicitly convert type string to byte[]
This is because your 'ComputeHash' method returns a string, and you are trying to assign this return value to a byte array with;
byte[] encds = MyHash.ComputeHash(Password, "SHA256", NoHash);
There is no implicit converstion for string to byte[] because there exist a number of different encodings to represent a string as bytes, such as ASCII or UTF8.
You need to explicitly convert the bytes using an appropriate encoding class like so;
string x = "somestring";
byte[] y = System.Text.Encoding.UTF8.GetBytes(x);