我看到一些.NET 2.0代码看起来像这样:
public enum abc : int
{
value1 = 1,
value2 = 2,
value3 = 4
}
Run Code Online (Sandbox Code Playgroud)
等等...
现在我知道标志枚举可以用于位值(如上所述,对吗?)所以你可以做| "或"等等,但不使用它的原因是什么?重写int有什么意义?
如果我设计一个用于选择多个值的枚举,我会使用flags属性而不是覆盖任何东西(我不明白).上述方法是什么网?
谢谢
使用经典代码段:
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的幂?
我有一个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.
我究竟做错了什么?
如果您转到此网页,请向下滚动:
http://www.unauthorised-access.com/category/nettiers/
你看到像箭头一样的绿色掉头.有谁知道这意味着什么?我读过某个地方,很久以前,它与线程和多线程代码有关但我不记得了.
谢谢
如果我需要检查整个表以查看条件是否为真(例如,每个Ticket列都有一个带有特定后缀的ID).
性能明智的方法是什么?该表非常大,所以如果我遍历每一行,那么很多时候都会访问数据库.游标很慢,所以这不是一个优雅的解决方案
此外,对于将来,您始终可以验证您的参数,但过去情况并非如此.
只是一个简单的问题:
我已经读过,当一个类不修改它的实例时,它应该是静态的.因此,如果我有一个名为Account的类,并且它具有Id,Duration等属性,并且这些属性不会被类修改,那么这可以是静态的,否则它应该保持静态.
这个(实例本身,通过其属性,是否变异)如何影响静态/实例决策?
此外,如果一个类需要加载参数(比如这个Account类,坚持我们的类比),但不修改实例(因此没有Account变量更改 - 没有像Account.x = y //其中y来自另一个类) ,我认为这仍然是静态的?因此,不是参数是一个问题或它们来自哪里,它们是做什么的?
如果它是一个属性,同样的原则适用于决定使一个字段静态或不是(如果字段持有的数据将是昂贵的,然后有一个字段持有它 - 静态 - 如果我错了纠正我).
我注意到在C#上有超过100个静态方法的线程(这是一个静态的方法,因为它处理参数),我将阅读所有这些,因为有很好的问题和好的答案.
谢谢
在我写的一个类中,我正在使用一个对象在我正在编写的自定义类中设置它的一些属性.
这是在构造函数中完成的,但该类有一个Dispose()方法.
我从来没有在具有Dispose()方法/实现IDisposable的构造函数中实际使用过对象.我应该在using(...)语句中包装它还是应该实现析构函数/终结器?
我的想象力让我问这个:这个类是第三方封闭源API的一部分.我怎样才能找出需要处理的东西?
谢谢
我想使用Fisheye以安全的方式在线托管我的代码库.由于我的产品组合是开源的(我通过文件浏览器控件以及网站代码的一部分,以及很快的其他站点代码发布代码),我需要一种更具伸缩性和组织性的方式来存储代码.
我查看了Atlassian Fisheye及其获得开源版本的要求如下:
"使用经批准的开源许可"
我去http://www.opensource.org/licenses查看许可证.有没有人有任何申请经验?结果是什么?
谢谢
我有以下代码:
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)
谢谢
我在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)
不编译.
什么
谢谢
我有一些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查询以获取所有这些重复实例,而不仅仅是重复对中的第一个实例,或三重奏.
什么是理想的查询来获得这个?
我正在编写一个包含多个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)
这可能吗?
谢谢
通常当我想检查一个条件或另一个条件是否为真时,我会编写如下代码:
if (i == 5 || j == 3) { // Do whatever here. }
Run Code Online (Sandbox Code Playgroud)
是否有一个整洁/高性能的避免使用OR运算符检查不同条件的编码风格陷阱?