Ich habe die folgende abstrakte Basisklasse:C# params auf Methodensignatur nicht bricht eine Überschreibung/Implementierung
public abstract class HashBase
{
public abstract byte[] Hash(byte[] value);
}
Und dann gehe ich voran und implementieren diese Klasse:
public class CRC32Hash : HashBase
{
public override byte[] Hash(params byte[] value)
{
return SomeRandomHashCalculator.Hash(value);
}
}
Compile. ..und es funktioniert!
- Wird dies empfohlen oder führt dies zu "bösen" Code?
- Ist "params" Art von syntaktischem Zucker?
* "Ist" params "Art von syntaktischem Zucker?" * Yep! Wenn Sie ein Array übergeben, wird dieses Array verwendet. Wenn Sie einige Dinge übergeben, die Elemente eines Arrays sein könnten, werden diese zu einem Array. Also ist es kompatibel; Ich weiß nicht, ob es ratsam ist. – Ryan