小编Pos*_*Guy的帖子

返回基于传入字符串值的枚举常量

我将从查询字符串中获取枚举值.

例如,假设我有这个枚举:

Enum MyEnum
{
    Test1,
    Test2,
    Test3
}
Run Code Online (Sandbox Code Playgroud)

我将从传入的查询字符串中获取值,因此:

string myEnumStringValue = Request["somevar"];
Run Code Online (Sandbox Code Playgroud)

myEnumStringValue可以是"0","1","2"

我需要根据该字符串值返回实际的枚举常量.

我可以去创建一个接受字符串然后执行case语句的方法

case "0":
    return MyEnum.Test1;
    break;
Run Code Online (Sandbox Code Playgroud)

但是必须有一个更容易或更光滑的方式来做到这一点?

c#

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

使用前设置StringBuilder?

是否需要初始化StringBuilder变量以允许说string.empty,以防你最终没有追加任何东西而需要返回一些东西?

    public static string ToSemiColonList<T>(this IEnumerable<T> list, Func<T, string> func)
    {
        StringBuilder sb = new StringBuilder();

        foreach (T item in list)
        {
            if (sb.Length > 0)
                sb.Append(";");

            string elem = func(item);
            sb.Append(elem);
        }

        return sb.ToString();
    }
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它可能永远不会进入foreach.所以我的猜测是,因为方法范围中的每个局部变量都在C#中设置为无值,将其设置为空字符串,因为如果未触及此foreach,我们需要返回一些内容.

也许最好检查一下stringbuilder长度然后如果为零,返回string.empty或者我是否会超载(做同样的工作两次)并且它很好,就像我拥有它一样?

c#

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

从非基于Web的项目执行Response.Redirect

我创建了一个实用程序方法,其中包含一些try/catches.在那些尝试/捕获中,我需要使用HttpResponse重定向重定向客户.我似乎无法弄清楚如何在Web项目之外执行此操作.这个实用程序类是从我的ASP.NET Web项目中引用的,所以我只是将一些代码抽象到这个实用程序类中,所以我不再拥有请求对象.

我知道我可以HttpWebRequest在Web项目之外使用对象进行许多与Web相关的请求任务,但是在放入using System.Net;我的实用程序类之后似乎无法获得任何重定向方法.

c# asp.net

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

选择另一个后无法取消选中单选按钮

这是我的设置:如果radiobutton1在页面加载时已经检查过(它checked="checked"在视图源中)并且我在选择后尝试取消选中,则在选择后radiobutton2,checked属性on radiobutton1不会被删除radiobutton2:

if($('#' + radiobutton1_ID).is(':checked'))
    UncheckRadioButton('#' + radiobutton2_ID);

// Utility function to clear a radiobutton's "checked" attribute
function UncheckRadioButton(radiobuttonID) {
    radiobuttonID.removeAttr("checked"); 
}
Run Code Online (Sandbox Code Playgroud)

选择后radiobutton2,做一个"查看源文件"我没有看到checked="checked"radiobutton2(即使页会显示该按钮选中),并为radiobutton1它仍然显示checked="checked".这是为什么?它应该是相反的方式.


UPDATE

这是我的一些代码.我知道if声明部分被击中,所以这不是问题,我知道我使用的单选按钮ID(ccRadioBtn,checkRadioBtnpaypalRadioButton)是正确的:

    var ccRadioBtn = ccRadioButton; // credit card radio button ID
    var paypalRadioButton = payPalRadioClientID;

    // ...

    if (paypalIsSelected()) {
        UncheckRadioButton(checkRadioBtn);
        UncheckRadioButton(ccRadioBtn);

        // ...
    } …
Run Code Online (Sandbox Code Playgroud)

jquery radio-button checked

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

另一种连接方式

还有另一种方法可以连接'#'字符,就像我在下面做的那样?

radioButtonID ='#'+ radioButtonID;

javascript

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

在没有第三方框架的情况下从HttpWebResponse反序列化JSON的方法

我试图避免依赖开源或第三方库(如Json.NET)来解析来自HttpWebResponse的传入JSON.为什么?因为越来越依赖开源框架来帮助实现,你的应用程序必须依赖这些依赖关系...我不喜欢我的应用程序在许多库中依赖于很多原因,如果可能的话.我可以使用像Enterprise Library这样的东西,因为它得到了MS的支持,但是我正在使用更多的开源库.

无论如何,我试图找出在.NET 3.5中解析传入JSON服务器端的最佳方法.

我知道这会得到很多响应,我甚至使用.NET 3.5 JavaScriptSerializer将数据序列化为JSON,但现在我正试图找出最好和最简单的方法来做反向,不用再做了使用第三方/开源框架来帮助实现这一目标.

c# asp.net serialization json datacontractjsonserializer

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

如何将小数与硬编码值进行比较?

从来没有必要这样做到现在为止.

试图确保chargeAmount(十进制类型)不低于1美分:

 if (chargeAmount < 0.01)
                throw new ArgumentOutOfRangeException("chargeAmount");
Run Code Online (Sandbox Code Playgroud)

我试过0.01D,但显然我不确定你是如何格式化的.

c#

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

当DL需要返回BL类型时,如何构造一个简单的BL

我得到了我的DL项目抽象(对于我的DL分开了)我有一个BL(单独的程序集)..它有中间方法调用一些db层方法.但是其中一些DL方法需要返回一个类型,这个类型在我的BL中...会强制出现问题,一个循环引用.你是如何在模式方面处理这个问题的?

例如,如果我有一个假设的MyProject.DL在Car类中有以下方法:

internal List<Car> GetCars(Dealer dealer)
{
   // logic

}
Run Code Online (Sandbox Code Playgroud)

和MyProject.BL需要调用该DL方法:

public List<Car> GetCars(Dealer dealer)
{
     MyProject.DL.GetCars(dealer);
}
Run Code Online (Sandbox Code Playgroud)

c#

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

必须分组到聚合?

是否需要按照您的选择中的某些内容进行分组,如果使用SUM进行聚合?你必须有一个group by子句吗?

sql t-sql sql-server aggregate-functions

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

接受任何枚举的方法

可能重复:
创建将T限制为枚举的通用方法

是否可以创建一个接受任何枚举的泛型方法?然后我会检查传入的类型,首先确保它是一个传递的枚举(或者我可以通过方法定义强制执行吗?)然后如果它是一个枚举,我会有一堆case语句做东西基于传递的枚举类型.例如,我可以将它传递给作为枚举的CompanyColumns,PayColumns等.我的方法需要能够采用这样的枚举,并允许我在我的内部case语句中使用枚举.

public static DbType GetColumnDataType(我希望能够传入任何枚举的对象)

c#

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