Tag: C#的

C ++方法声明中最后一个“const”的含义?

const在这些声明中的含义是什么? const让我困惑。 class foobar { public: operator int () const; const char* foo() const; };

在C#中重复一个字符的最佳方法

什么是在C#中生成\tstring的最好方法 我正在学习C#并尝试用不同的方式来expression同样的事情。 Tabs(uint t)是一个函数,返回一个string t数量\t 例如, Tabs(3)返回"\t\t\t" 这三种实现Tabs(uint numTabs)方法中哪一种最好? 当然,这取决于“最好”的含义。 LINQ版本只有两行,这很好。 但是呼叫重复和聚合不必要的时间/资源消耗? StringBuilder版本非常清楚,但StringBuilder类以某种方式更慢? string版本是基本的,这意味着它很容易理解。 这根本不重要吗? 他们都是平等的吗? 这些都是帮助我更好地感受C#的问题。 private string Tabs(uint numTabs) { IEnumerable<string> tabs = Enumerable.Repeat("\t", (int) numTabs); return (numTabs > 0) ? tabs.Aggregate((sum, next) => sum + next) : ""; } private string Tabs(uint numTabs) { StringBuilder sb = new StringBuilder(); for (uint i […]

从.net中的app.config或web.config中读取设置

我正在处理一个C#类库,它需要能够从web.config或app.config文件中读取设置(取决于DLL是从ASP.NET Web应用程序还是Windows窗体应用程序中引用的)。 我发现了 ConfigurationSettings.AppSettings.Get("MySetting") 工作,但该代码已被标记为由Microsoft弃用。 我读过,我应该使用: ConfigurationManager.AppSettings["MySetting"] 但是, System.Configuration.ConfigurationManager类似乎从C#类库项目中不可用。 有谁知道什么是最好的方法来做到这一点?

哪个更快:while(1)while while(2)?

这是一位高级经理提出的面试问题。 哪个更快? while(1) { // Some code } 要么 while(2) { //Some code } 我说过,两者执行速度一样,里面的expression式最终应该是true还是false 。 在这种情况下,两者评估为true并且在while条件内没有额外的条件指令。 所以,两者都会有相同的执行速度,我更喜欢while(1)。 但面试官自信地说:“ while(1)比while(2)快。” (他没有testing我的信心) 这是真的? 另请参见: “for(;;)”比“while(TRUE)”更快? 如果没有,为什么人们使用它?

C#循环 – rest与继续

在C#中(随意回答其他语言)循环,break和continue之间的差别是什么,作为离开循环结构的一种手段,并转到下一次迭代? 例: foreach (DataRow row in myTable.Rows) { if (someConditionEvalsToTrue) { break; //what's the difference between this and continue ? //continue; } }

从IList <string>或IEnumerable <string>创build逗号分隔的列表

从IList<string>或IEnumerable<string>创build一个逗号分隔的string值列表的最简洁的方法是什么? String.Join(…)对string[]操作,因此当IList<string>或IEnumerable<string>不能轻易转换为string数组时,可能会很麻烦。

如何将方法标记为已过时/已弃用?

如何将方法标记为已废弃/已弃用C#?

为什么我的程序在循环8192个元素时变慢?

这是来自程序的摘录。 matriximg[][]的大小为SIZE×SIZE,初始化为: img[j][i] = 2 * j + i 然后,你制作一个matrixres[][] ,这里的每个字段都是imgmatrix中围绕它的9个字段的平均值。 为简单起见,边框保留为0。 for(i=1;i<SIZE-1;i++) for(j=1;j<SIZE-1;j++) { res[j][i]=0; for(k=-1;k<2;k++) for(l=-1;l<2;l++) res[j][i] += img[j+l][i+k]; res[j][i] /= 9; } 这就是所有的程序。 为了完整起见,以前是这样的。 没有代码后来。 正如你所看到的,这只是初始化。 #define SIZE 8192 float img[SIZE][SIZE]; // input image float res[SIZE][SIZE]; //result of mean filter int i,j,k,l; for(i=0;i<SIZE;i++) for(j=0;j<SIZE;j++) img[j][i] = (2*j+i)%8196; 基本上,当SIZE是2048的倍数时,这个程序是很慢的,例如执行时间: SIZE = 8191: 3.44 […]

最有用的属性

我知道属性是非常有用的。 有一些预定义的例如[Browsable(false)] ,它允许你隐藏属性选项卡中的属性。 这是一个很好的解释属性的问题: 什么是.NET中的属性? 你在项目中实际使用的预定义属性(及其名称空间)是什么?

混淆C代码大赛2006年。请解释sykes2.c

这个C程序如何工作? main(_){_^448&&main(-~_);putchar(–_%64?32|-~7[__TIME__-_/8%8][">'txiZ^(~z?"-48]>>";;;====~$::199"[_*2&8|_/64]/(_&2?1:8)%8&1:10);} 它编译原样(在gcc 4.6.3上testing)。 它打印编译时的时间。 在我的系统上: !! !!!!!! !! !!!!!! !! !!!!!! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !!!!!! !! !! !! !! !! !!!!!! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !!!!!! !! !! !! […]