它需要分配哪些非托管资源?它不仅仅是一个简单的托管数据阵列吗?那么为什么要处置呢?
我正在研究一个Web服务方法,它将接收一个int数组作为参数,然后,在方法内部,我将数组中的值转换为枚举值,并将它们存储在枚举列表中.但是,当传递不在枚举中的值时,它将被添加到枚举列表中而没有任何问题.不InvalidCastException
,没什么.我做了一个看起来像这样的测试项目:
static class Program
{
static void Main(string[] args)
{
List<TestValues> values = new List<TestValues>() {
TestValues.Value1,
TestValues.Value2,
(TestValues)15
};
foreach (var val in values)
Console.WriteLine(val);
Console.Read();
}
enum TestValues
{
Value1 = 2,
Value2 = 4,
Value3 = 8
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,输出是:
Value1
Value2
15
Run Code Online (Sandbox Code Playgroud)
对于我的Web服务,我将实现验证,因此根本不会有任何问题.但是......这很奇怪!运行时不应该抛出一个InvalidCastException
或ArgumentOutOfRangeException
类似的东西吗?由于我得到了一个枚举列表(而不是int值),我希望将值限制为枚举值(这就是枚举的用途).
我错过了什么吗?这是一个.NET错误,一个C#错误还是有一些我不知道的枚举?
我读起的Perl西蒙科泽斯并在第8章-子程序他指出,"子程序"的用户功能,同时print
,open
,split
等是内置的运算符或函数.
这些是什么?它们是真正内置的,语言固有的特性(如C的sizeof
运算符)还是它们实际上是main
模块的子程序/函数?
如果他们的子程序,有while
,for
,unless
,等也子程序?什么样的运营商+
,-
,eq
等?
为什么有一个被调用的函数strcat
而不是一个被调用的函数stringConcatenation
,或者stringConcat
或者string_concat
类似的函数?为什么有一个clrscr
功能,而不是clearScreen
或clear_screen
?
它是否与过去几天的源代码大小有关,其中每个字节在过大的软盘上都是值得的?还是程序员固有的懒惰加剧了这种情况?这是一个惯例吗?
可能重复:
在perl中建议一些好的MVC框架
是否有任何使用MVC的Perl Web编程框架?我问这个是因为我是一个C#开发人员,而且我已经习惯了Web Forms和ASP.NET MVC,直到现在,我对这个主题的所有研究都给我带来了关于CGI程序设计的资源.它仍然是在Perl中执行Web应用程序的唯一方法吗?
是否可以将扩展方法添加到独立于该类的实例泛型类型的泛型类中?
我想编写一个扩展方法来处理Nullable值.到目前为止,该方法如下所示:
public static object GetVerifiedValue(this Nullable<> obj)
{
return obj.HasValue ? obj.Value : DBNull.Value;
}
Run Code Online (Sandbox Code Playgroud)
但编译器不接受该Nullable<>
类型.
有什么方法可以做到这一点吗?
注意:我使用的是C#3.0,.NET 3.5.
我一直在使用Action获取报告的数据,作为JSON对象,使用jQuery的ajax将表单发布到它上面没有问题.
但是现在我需要根据参数的值返回不同的结果类型.它应该返回JSON,Excel文件(使用HTML构建)或PDF文件.所以我在我的控制器类上创建了一个嵌套枚举,用于分隔可用的返回类型.
但是现在,当我尝试从URL调用Action来生成文件时,它会抛出一条ArgumentException
消息:
The parameters dictionary contains a null entry for parameter 'dataInicio' of non-nullable type 'System.DateTime' for method 'System.Web.Mvc.ActionResult DadosRelatorioResumoLancamentos(System.Nullable`1[System.Int32], System.String, System.DateTime, System.DateTime, TipoResultado)' in 'Imovelweb.Web.Intranet.Controllers.RelatoriosController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.
Parameter name: parameters
仍然,dataInicio
参数出现在查询字符串中:
我已经尝试了两种方法的原始请求(返回JSON内容),它适用于POST,但不适用于GET(ArgumentException
抛出相同的内容).
我错过了什么?
这是Action方法的签名:
public ActionResult DadosRelatorioResumoLancamentos(
int? codFantasia,
string numAp,
DateTime dataInicio,
DateTime dataFim,
TipoResultado tipoResultado = TipoResultado.Json
);
Run Code Online (Sandbox Code Playgroud)
以下是枚举:
public enum TipoResultado
{ …
Run Code Online (Sandbox Code Playgroud) 我是一名C#开发人员,我正在努力了解WinAPI在Windows开发中的作用.我的看法是它是内核本身的唯一阐述,并且在.NET之前,它也是"Windows开发"本身(不包括非Microsoft技术),但我不确定这些语句都不是.另外,我不确定WinAPI和.NET框架的关系是什么.所以我有几个问题:
c# ×3
.net ×2
perl ×2
asp.net-mvc ×1
c ×1
c#-3.0 ×1
cgi ×1
conventions ×1
email ×1
enums ×1
frameworks ×1
function ×1
generics ×1
winapi ×1