小编Gur*_*epS的帖子

在枚举上覆盖int

我看到一些.NET 2.0代码看起来像这样:

 public enum abc : int
 {
  value1 = 1,
  value2 = 2,
  value3 = 4
 }
Run Code Online (Sandbox Code Playgroud)

等等...

现在我知道标志枚举可以用于位值(如上所述,对吗?)所以你可以做| "或"等等,但不使用它的原因是什么?重写int有什么意义?

如果我设计一个用于选择多个值的枚举,我会使用flags属性而不是覆盖任何东西(我不明白).上述方法是什么网?

谢谢

.net c# enums

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

查询是否数字是2的幂

使用经典代码段:

if(x&(x-1))== 0

如果答案是1,那么它是假的而不是2的幂.但是,工作5(不是2的幂)和4导致:

0001 1111 0001 1111 0000 1111

那是4 1s.

在8和7上工作:

1111 1111 0111 1111

0111 1111

0是第一,但我们有4.

在这两个案例的链接(http://www.exploringbinary.com/ten-ways-to-check-if-an-integer-is-a-power-of-two-in-c/)中,答案开始0为0,可变数为0/1.这是如何回答这个数字是2的幂?

algorithm

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

在字典中存储func时,参数类型不可分配

我有一个func,它接受一个T类参数并返回一个值.

我想将它存储在字典中,如下所示:

Dictionary<CustomerMilestones, Func<string, string>> coll = new Dictionary<CustomerMilestones, Func<string, string>>();

string Indicator = coll[CustomerMilestones.Ordered100Products].Invoke(customerId.ToString());

coll.Add(CustomerMilestones.Ordered100Products, Execute(Indicator);
Run Code Online (Sandbox Code Playgroud)

Execute是一个接受字符串但也返回字符串的方法.在最后一行,错误如下:

参数类型字符串不能分配给参数类型Func.

我究竟做错了什么?

c#

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

Visual Studio代码编辑器中绿色弧形箭头的含义是什么?

如果您转到此网页,请向下滚动:

http://www.unauthorised-access.com/category/nettiers/

你看到像箭头一样的绿色掉头.有谁知道这意味着什么?我读过某个地方,很久以前,它与线程和多线程代码有关但我不记得了.

谢谢

visual-studio-2008

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

在考虑到性能的大表中进行迭代

如果我需要检查整个表以查看条件是否为真(例如,每个Ticket列都有一个带有特定后缀的ID).

性能明智的方法是什么?该表非常大,所以如果我遍历每一行,那么很多时候都会访问数据库.游标很慢,所以这不是一个优雅的解决方案

此外,对于将来,您始终可以验证您的参数,但过去情况并非如此.

c# sql performance sql-server-2005

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

参数及其在方法中的使用如何影响静态/实例设计决策?

只是一个简单的问题:

我已经读过,当一个类不修改它的实例时,它应该是静态的.因此,如果我有一个名为Account的类,并且它具有Id,Duration等属性,并且这些属性不会被类修改,那么这可以是静态的,否则它应该保持静态.

这个(实例本身,通过其属性,是否变异)如何影响静态/实例决策?

此外,如果一个类需要加载参数(比如这个Account类,坚持我们的类比),但不修改实例(因此没有Account变量更改 - 没有像Account.x = y //其中y来自另一个类) ,我认为这仍然是静态的?因此,不是参数是一个问题或它们来自哪里,它们是做什么的?

如果它是一个属性,同样的原则适用于决定使一个字段静态或不是(如果字段持有的数据将是昂贵的,然后有一个字段持有它 - 静态 - 如果我错了纠正我).

我注意到在C#上有超过100个静态方法的线程(这是一个静态的方法,因为它处理参数),我将阅读所有这些,因为有很好的问题和好的答案.

谢谢

c# static static-methods

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

在构造函数中使用必须为Disposed的对象

在我写的一个类中,我正在使用一个对象在我正在编写的自定义类中设置它的一些属性.

这是在构造函数中完成的,但该类有一个Dispose()方法.

我从来没有在具有Dispose()方法/实现IDisposable的构造函数中实际使用过对象.我应该在using(...)语句中包装它还是应该实现析构函数/终结器?

我的想象力让我问这个:这个类是第三方封闭源API的一部分.我怎样才能找出需要处理的东西?

谢谢

c#

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

申请开源许可证的提示

我想使用Fisheye以安全的方式在线托管我的代码库.由于我的产品组合是开源的(我通过文件浏览器控件以及网站代码的一部分,以及很快的其他站点代码发布代码),我需要一种更具伸缩性和组织性的方式来存储代码.

我查看了Atlassian Fisheye及其获得开源版本的要求如下:

"使用经批准的开源许可"

我去http://www.opensource.org/licenses查看许可证.有没有人有任何申请经验?结果是什么?

谢谢

licensing open-source

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

数据集中有一个名为"Table"的表,而不是我传入的表?

我有以下代码:

string SQL = "select * from " + TableName;

using (DS = new DataSet())
using (SqlDataAdapter adapter = new SqlDataAdapter())
using (SqlConnection sqlconn = new SqlConnection(connectionStringBuilder.ToString()))
using (SqlCommand objCommand = new SqlCommand(SQL, sqlconn))
{
    sqlconn.Open();
    adapter.SelectCommand = objCommand;
    adapter.Fill(DS);
}

System.Windows.Forms.MessageBox.Show(DS.Tables[0].TableName);

return DS;
Run Code Online (Sandbox Code Playgroud)

但是,每次运行此代码时,数据集(DS)都会填充一个名为"Table"的表.它不代表我作为参数TableName传入的表名,并且此参数不会发生变异,因此我不知道Table的名称来自何处.我希望该表与我传入的tableName参数相同?

知道为什么不是这样吗?

编辑:重要事实:此代码需要返回一个数据集,因为我在另一个依赖于此的方法中使用dataRelation对象,并且不使用数据集,该方法抛出异常.该方法的代码是:

DataRelation PartToIntersection = new DataRelation("XYZ", 
        this.LoadDataToTable(tableName).Tables[tableName].Columns[0],
        // Treating the PartStat table as the parent - .N
        this.LoadDataToTable("PartProducts").Tables["PartProducts"].Columns[0]);
        // 1

        // PartsProducts (intersection) to ProductMaterial
        DataRelation ProductMaterialToIntersection = 
           new DataRelation("", ds.Tables["ProductMaterial"].Columns[0],
                                ds.Tables["PartsProducts"].Columns[1]);
Run Code Online (Sandbox Code Playgroud)

谢谢

c#

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

如何调用此func代码段?

我在monad上看这篇文章:

http://blogs.msdn.com/b/wesdyer/archive/2008/01/11/the-marvels-of-monads.aspx

我在我的VS2010副本中编写代码,但是对于以下代码:

public static Func<T, V> Compose<T, U, V>(this Func<U, V> f, Func<T, U> g)
{
    return x => f(g(x));
}
Run Code Online (Sandbox Code Playgroud)

我怎么称呼这个?

此外,文章指出:

函数组合采用两个函数,并将第二个函数的结果输入到第一个函数的输入中,从而形成一个函数.

这不仅仅是管道吗?

代码示例:

var r = f.Compose(g)(x);
Run Code Online (Sandbox Code Playgroud)

不编译.

什么

谢谢

c# func

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

从List <T>对象获取所有重复项?

我有一些LINQ代码(unfortunatley不要手工!)从列表对象中获取重复项.但是,原始列表中的重复项是这样的:

Item A
Item A
Item A
Item B
Item B
Item C
Item C
Item C
Item C

etc...
Run Code Online (Sandbox Code Playgroud)

我想做的是扩展LINQ查询以获取所有这些重复实例,而不仅仅是重复对中的第一个实例,或三重奏.

什么是理想的查询来获得这个?

.net c# linq

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

For循环 - 如果布尔条件的计算结果为false,则继续

我正在编写一个包含多个if语句的for循环.

如果for语句中的if语句(或其中的一部分)的计算结果为false,那么循环不会退出,而是整数迭代增加1并继续循环(我需要像continue这样的功能;关键词).

例:

for (int i = 0; i <= Collection.Count && Collection[i].Name != "Alan"; i++)
{
    // If name is not Alan, increment i and continue the loop.
} 
Run Code Online (Sandbox Code Playgroud)

这可能吗?

谢谢

c#

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

避免使用||的编码陷阱 检查不同的条件

通常当我想检查一个条件或另一个条件是否为真时,我会编写如下代码:

if (i == 5 || j == 3) { // Do whatever here. }
Run Code Online (Sandbox Code Playgroud)

是否有一个整洁/高性能的避免使用OR运算符检查不同条件的编码风格陷阱?

c# boolean-logic

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