md5、sha1、sha512の3つの異なる方法があります。いくつかの小さな部分は、文を使用するのとは異なります。これらすべてのための汎用的なメソッドを作成することは可能ですか?私は中間者であり、いくつかの話題は私にとっては非常に新しいものです。 コードの下に(簡略化) "ConvertHashToString"メソッドは無視してください。 ありがとうございました!C#任意のアルゴリズムのための一般的な方法
public string CheckMd5(string filename)
{
using (var stream = File.OpenRead(filename))
{
using (var md5 = MD5.Create())
{
return ConvertHashToString(md5.ComputeHash(stream));
}
}
}
public string CheckSha512(string filename)
{
using (var stream = File.OpenRead(filename))
{
using (var sha = SHA512.Create())
{
return ConvertHashToString(sha.ComputeHash(stream));
}
}
}
ありがとうございました!この方法の名前は何ですか?匿名の方法? – schui
最初のものは、[expression body members](https://msdn.microsoft.com/en-us/magazine/dn802602.aspx)という新しいC#6構文です。 – vcsjones
最初の実装は一般に悪い習慣です。オブジェクトは作成された場所に配置する必要があります。サンプルでは、完全に有効な 'MD5'オブジェクトを' CheckHash'に渡していますが、 'CheckHash'を呼び出すと、私の' MD5'オブジェクトは何らかの理由で破棄されています。もう一度使うつもりだったらどうしますか? 'CheckHash'については、このような動作を示すものはありません。 – dman2306