小编Rap*_*ael的帖子

为什么我需要Dispose一个System.Net.Mail.MailMessage实例?

它需要分配哪些非托管资源?它不仅仅是一个简单的托管数据阵列吗?那么为什么要处置呢?

c# email

33
推荐指数
2
解决办法
8483
查看次数

C#枚举数组接受错误的值

我正在研究一个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服务,我将实现验证,因此根本不会有任何问题.但是......这很奇怪!运行时不应该抛出一个InvalidCastExceptionArgumentOutOfRangeException类似的东西吗?由于我得到了一个枚举列表(而不是int值),我希望将值限制为枚举值(这就是枚举的用途).

我错过了什么吗?这是一个.NET错误,一个C#错误还是有一些我不知道的枚举?

.net c# enums

19
推荐指数
2
解决办法
1739
查看次数

什么是Perl内置的运算符/函数?

我读起的Perl西蒙科泽斯并在第8章-子程序他指出,"子程序"的用户功能,同时print,open,split等是内置的运算符或函数.

这些是什么?它们是真正内置的,语言固有的特性(如C的sizeof运算符)还是它们实际上是main模块的子程序/函数?

如果他们的子程序,有while,for,unless,等也子程序?什么样的运营商+,-,eq等?

perl

14
推荐指数
2
解决办法
1552
查看次数

为什么缩短C名称?

为什么有一个被调用的函数strcat而不是一个被调用的函数stringConcatenation,或者stringConcat或者string_concat类似的函数?为什么有一个clrscr功能,而不是clearScreenclear_screen

它是否与过去几天的源代码大小有关,其中每个字节在过大的软盘上都是值得的?还是程序员固有的懒惰加剧了这种情况?这是一个惯例吗?

c conventions function naming-conventions

12
推荐指数
1
解决办法
1250
查看次数

用于Perl Web编程的MVC框架?

可能重复:
在perl中建议一些好的MVC框架

是否有任何使用MVC的Perl Web编程框架?我问这个是因为我是一个C#开发人员,而且我已经习惯了Web Forms和ASP.NET MVC,直到现在,我对这个主题的所有研究都给我带来了关于CGI程序设计的资源.它仍然是在Perl中执行Web应用程序的唯一方法吗?

perl frameworks cgi

3
推荐指数
3
解决办法
4765
查看次数

通用的通用扩展方法(原文如此!)

是否可以将扩展方法添加到独立于该类的实例泛型类型的泛型类中?

我想编写一个扩展方法来处理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.

generics extension-methods c#-3.0

2
推荐指数
1
解决办法
382
查看次数

Action适用于POST,但不适用于GET(查询字符串)

我一直在使用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参数出现在查询字符串中:

http://localhost:32331/Relatorios/DadosRelatorioResumoLancamentos?codFantasia=106&numAp=&dataInicio=21%2F03%2F2012&dataFim=21%2F03%2F2012&tipoResultado=1

我已经尝试了两种方法的原始请求(返回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# asp.net-mvc asp.net-mvc-2

2
推荐指数
1
解决办法
1207
查看次数

WinAPI和.NET之间有什么关系?

我是一名C#开发人员,我正在努力了解WinAPI在Windows开发中的作用.我的看法是它是内核本身的唯一阐述,并且在.NET之前,它也是"Windows开发"本身(不包括非Microsoft技术),但我不确定这些语句都不是.另外,我不确定WinAPI和.NET框架的关系是什么.所以我有几个问题:

  • 整个.NET运行时是否构建在WinAPI之上?如果是这样,WinAPI真的是在Windows上开发的最低级别界面吗?
  • 现在,每个人在Windows开发(在任何领域,如网络,商业,软件产品等)中的作用是什么?
  • 现在是否有比.NET开发人员更多的WinAPI(C/C++)开发人员?
  • WinRT在哪里进入?

.net winapi

1
推荐指数
1
解决办法
438
查看次数