小编cal*_*sto的帖子

C#循环 - 中断与继续

在C#(随意回答其他语言)循环中,break和continue之间的区别是什么,作为离开循环结构的手段,并进入下一次迭代?

例:

foreach (DataRow row in myTable.Rows)
{
    if (someConditionEvalsToTrue)
    {
        break; //what's the difference between this and continue ?
        //continue;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# loops enumeration

777
推荐指数
12
解决办法
72万
查看次数

如何声明嵌套枚举?

我想声明一个嵌套的枚举:

\\pseudocode
public enum Animal
{
  dog = 0,
  cat = 1
}

private enum dog
{
   bulldog = 0,
   greyhound = 1,
   husky = 3
}

private enum cat
{
   persian = 0,
   siamese = 1,
   burmese = 2
}

Animal patient1 = Animal.dog.husky;
Run Code Online (Sandbox Code Playgroud)

可以吗?

c# enums

45
推荐指数
5
解决办法
4万
查看次数

枚举除字符串以外的返回类型?

由于枚举使用整数,我可以使用什么其他结构来给我类似enum的访问链接到名称的值:

[我知道这是错的,寻找替代方案]

private enum Project
    {
        Cleanup = new Guid("2ED3164-BB48-499B-86C4-A2B1114BF1"),
        Maintenance = new Guid("39D31D4-28EC-4832-827B-A11129EB2"),
        Upgrade = new Guid("892F865-E38D-46D7-809A-49510111C1"),
        Sales = new Guid("A5690E7-1111-4AFB-B44D-1DF3AD66D435"),
        Replacement = new Guid("11E5CBA2-EDDE-4ECA-BDFD-63BDBA725C8C"),
        Modem = new Guid("6F686C73-504B-111-9A0B-850C26FDB25F"),
        Audit = new Guid("30558C7-66D9-4189-9BD9-2B87D11190"),
        Queries = new Guid("9985242-516A-4151-B7DD-851112F562")
    }
Run Code Online (Sandbox Code Playgroud)

编辑2014-07-20

这是对这个问题的新答案.将Attribute类与辅助方法一起使用,定义枚举所需的额外属性.

 public enum MultiValueEnum
    {
        [FooAttribute("alpha", 20d, true)]
        First,
        [FooAttribute("beta", 40.91d, false)]
        Second,
        [FooAttribute("gamma", 1.2d, false)]
        Third,
    }     

  public class FooAttribute : Attribute
            {
                internal FooAttribute(string name, double percentage, bool isGood)
                {
                    this.Name = name;
                    this.Percentage = (decimal)percentage;
                    this.IsGood = …
Run Code Online (Sandbox Code Playgroud)

c# enums

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

如何绑定ComboBox,以便displaymember是源数据表的2个字段的concat?

我想绑定ComboBoxDataTable(我不能改变其原来的架构)

cbo.DataSource = tbldata;
cbo.DataTextField = "Name";
cbo.DataValueField = "GUID";
cbo.DataBind();
Run Code Online (Sandbox Code Playgroud)

我想要这个ComboBox节目tbldata.Name + tbldata.Surname.

当然tbldata可以在绑定之前将新名称+姓氏添加为字段,但我希望有更优雅的解决方案(伪代码)

cbo.DataTextField = "Name";
cbo.DataTextField += "Surname";
Run Code Online (Sandbox Code Playgroud)

c# data-binding combobox

24
推荐指数
4
解决办法
5万
查看次数

将通用数据表转换为类型化数据表

我需要重用客户端规定的DataAccess方法.此方法返回vanilla数据表.我想将这个数据表转换为我的Typed数据表.列数及其类型将匹配.异常消息"无法将类型为'System.Data.DataTable'的对象强制转换为''类型'MarketValueDataTable'." 非常清楚,但我该如何解决?

看看cast-a-base-type-to-a-derived类型,但看不出如何使它工作.

我无法使用datareader填充数据表,只能使用客户端的DataAccess方法.

c# datatable strongly-typed-dataset

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

我怎么能故意减慢Windows?

如何用XP可逆地降低PC的速度?

我想在不使用可见的CPU周期的情况下实现这一点,所以我猜测一些硬件设置可能会这样做.

我不希望我的应用程序运行缓慢,我希望整个操作系统都很慢.我知道一些网络查找,特别是在可信环境(想想Active Directory)之外,可以降低PC的速度.这就是我想要的效果.

免责声明:这不是一个坏/邪恶/非法的原因!

windows performance

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

错误:字符串或二进制数据将被截断.表值参数的数据不符合参数的表类型

我收到了错误

字符串或二进制数据将被截断.表值参数的数据不符合参数的表类型.语句已终止.

存储过程是:

CreatePROCEDURE [dbo].[addquestion] 
     @dt as MyDataTable readonly
AS
BEGIN
    insert into questiontbl(Question)
        select(Question) 
        from @dt;
END
Run Code Online (Sandbox Code Playgroud)

该表是:

CREATE TABLE [dbo].[questiontbl]
( 
  [checkval] [varchar](max) NULL, 
  [Question] [varchar](max) NULL 
) 
Run Code Online (Sandbox Code Playgroud)

C#代码:

con.Close();
con.Open();

DataTable sqa = Session["questionlist"] as DataTable;

SqlParameter tvparam = cmd.Parameters.AddWithValue("@dt", sqa);                
tvparam.SqlDbType = SqlDbType.Structured;

cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)

Cmd.ExecuteNonQuery()返回提到的错误.我匹配了数据类型 - 它varchar(max)也在类型和表中.

.net c# sql-server asp.net ado.net

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

如何从C#循环USB设备?

我想在某个事件被触发后循环(模拟拔出并重新插入)USB设备(调制解调器).我在codeproject上找到了一个示例:

http://www.codeproject.com/KB/system/usbeject.aspx

这允许我通过其非易失性串口识别+弹出设备,但我需要它来回收,而不仅仅是弹出.

我读过这个:

http://www.tech-archive.net/Archive/Development/microsoft.public.development.device.drivers/2005-02/1292.html

我不明白.

其他USB相关帖子中已经提到过:

http://www.codeproject.com/KB/system/DriveDetector.aspx

这与我的问题无关.

c# api peripherals usb stack

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

在同一站点上使用基本身份验证和表单身份验

任何人都可以告诉我,如果可以在我的网站上使用基本身份验证和表单身份验证而不会相互干扰吗?

我有一个新网站,我只希望某些人看到批准的目的.

该站点具有使用表单身份验证的成员区域,现在当任何人在通过基本身份验证后进入站点时,他们将被定向到表单身份验证页面,即使他们应该查看不受表单身份验证保护的页面.

我需要一种情况,任何清除基本身份验证的人都可以查看整个站点,不包括他们需要通过表单身份验证登录的站点的成员区域.

asp.net authentication asp.net-mvc iis-7

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

从作为字符串传递的值中获取数据类型

我正在编写一个框架,它将连接到许多不同的数据源类型并从这些源返回值.简单的是SQL,Access和Oracle.更难的是Sharepoint,CSV.

如果我从基于文本的源返回值,我想确定数据的数据类型.

由于CSV是所有文本,因此没有要查询的元数据,我需要以某种方式解析数据以确定数据类型.

例:

"true","true","false","false"的
列表将是布尔列表"1","0","1","0"将是布尔
列表"1","4", "-10","500"将是整数
列表"15.2","2015.5896","1.0245","500"将是"2001/01/01
","2010/05/29 12:00"的双重列表","1989/12/25 10:34:21"将是约会时间

它基于/sf/ask/42445581/#606381

object ParseString(string str)
{

   Int32 intValue;
   Int64 bigintValue;
   double doubleValue;
   bool boolValue;
   DateTime dateValue;        

// Place checks higher in if-else statement to give higher priority to type.

if (Int32.TryParse(str, out intValue))
    return intValue;
else if (Int64.TryParse(str, out bigintValue))
    return bigintValue;
else if (double.TryParse(str, out doubleValue))
    return doubleValue;       
else if (bool.TryParse(str, out boolValue))
    return boolValue;
else if (DateTime.TryParse(str, out dateValue))
    return dateValue;
else return str;

}
Run Code Online (Sandbox Code Playgroud)

编辑:我只需要满足以下要求: …

c# gettype

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