我将从查询字符串中获取枚举值.
例如,假设我有这个枚举:
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)
但是必须有一个更容易或更光滑的方式来做到这一点?
是否需要初始化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或者我是否会超载(做同样的工作两次)并且它很好,就像我拥有它一样?
我创建了一个实用程序方法,其中包含一些try/catches.在那些尝试/捕获中,我需要使用HttpResponse重定向重定向客户.我似乎无法弄清楚如何在Web项目之外执行此操作.这个实用程序类是从我的ASP.NET Web项目中引用的,所以我只是将一些代码抽象到这个实用程序类中,所以我不再拥有请求对象.
我知道我可以HttpWebRequest在Web项目之外使用对象进行许多与Web相关的请求任务,但是在放入using System.Net;我的实用程序类之后似乎无法获得任何重定向方法.
这是我的设置:如果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,checkRadioBtn和paypalRadioButton)是正确的:
var ccRadioBtn = ccRadioButton; // credit card radio button ID
var paypalRadioButton = payPalRadioClientID;
// ...
if (paypalIsSelected()) {
UncheckRadioButton(checkRadioBtn);
UncheckRadioButton(ccRadioBtn);
// ...
} …Run Code Online (Sandbox Code Playgroud) 还有另一种方法可以连接'#'字符,就像我在下面做的那样?
radioButtonID ='#'+ radioButtonID;
我试图避免依赖开源或第三方库(如Json.NET)来解析来自HttpWebResponse的传入JSON.为什么?因为越来越依赖开源框架来帮助实现,你的应用程序必须依赖这些依赖关系...我不喜欢我的应用程序在许多库中依赖于很多原因,如果可能的话.我可以使用像Enterprise Library这样的东西,因为它得到了MS的支持,但是我正在使用更多的开源库.
无论如何,我试图找出在.NET 3.5中解析传入JSON服务器端的最佳方法.
我知道这会得到很多响应,我甚至使用.NET 3.5 JavaScriptSerializer将数据序列化为JSON,但现在我正试图找出最好和最简单的方法来做反向,不用再做了使用第三方/开源框架来帮助实现这一目标.
从来没有必要这样做到现在为止.
试图确保chargeAmount(十进制类型)不低于1美分:
if (chargeAmount < 0.01)
throw new ArgumentOutOfRangeException("chargeAmount");
Run Code Online (Sandbox Code Playgroud)
我试过0.01D,但显然我不确定你是如何格式化的.
我得到了我的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) 是否需要按照您的选择中的某些内容进行分组,如果使用SUM进行聚合?你必须有一个group by子句吗?
可能重复:
创建将T限制为枚举的通用方法
是否可以创建一个接受任何枚举的泛型方法?然后我会检查传入的类型,首先确保它是一个传递的枚举(或者我可以通过方法定义强制执行吗?)然后如果它是一个枚举,我会有一堆case语句做东西基于传递的枚举类型.例如,我可以将它传递给作为枚举的CompanyColumns,PayColumns等.我的方法需要能够采用这样的枚举,并允许我在我的内部case语句中使用枚举.
public static DbType GetColumnDataType(我希望能够传入任何枚举的对象)
c# ×7
asp.net ×2
checked ×1
javascript ×1
jquery ×1
json ×1
radio-button ×1
sql ×1
sql-server ×1
t-sql ×1