我有一个函数接受一个名为IV的参数.有没有我可以明确指定参数IV的大小为16?
public AESCBC(byte[] key,byte[16] inputIV) { //blah blah }
解决方法
你不能,基本上正如Jaroslav所说,你可以创建自己的类型 – 但除此之外,你只是抛出一个异常.
有了Code Contracts,您可以使用静态检查器可以帮助的形式来表达:
Contract.Requires(inputIV.Length == 16);
那么如果静态检查器认为你可能违反了合同,那么这个静态检查器可以在构建时告诉你.这只适用于Visual Studio的Premium和Ultimate版本.
(您仍然可以使用代码合同而不使用VS Professional的静态检查器,但是您将无法获得合同.)
插头:如果您想要更多的信息,现在可以免费下载C# in Depth 2nd edition的代码合同章节.