Questions tagged «c#»

C#(发音为“ See Sharp”)是由Microsoft开发的一种高级,静态类型的多范例编程语言。C#代码通常针对Microsoft的.NET系列工具和运行时,其中包括.NET Framework,.NET Core和Xamarin。使用此标记可解决有关用C#或C#正式规范编写的代码的问题。

9
从MVC中的List <object>填充剃须刀下拉列表
我有一个模型: public class DbUserRole { public int UserRoleId { get; set; } public string UserRole { get; set; } } public class DbUserRoles { public List&lt;DbUserRole&gt; GetRoles() { BugnetReports RoleDropDown = new BugnetReports(); List&lt;DbUserRole&gt; Roles = new List&lt;DbUserRole&gt;(); DataSet table = RoleDropDown.userRoleDropDown(); foreach (DataRow item in table.Tables[0].Rows) { DbUserRole ur …


6
如何实现IEnumerable <T>
我知道如何实现非通用IEnumerable,如下所示: using System; using System.Collections; namespace ConsoleApplication33 { class Program { static void Main(string[] args) { MyObjects myObjects = new MyObjects(); myObjects[0] = new MyObject() { Foo = "Hello", Bar = 1 }; myObjects[1] = new MyObject() { Foo = "World", Bar = 2 }; foreach (MyObject x in myObjects) …
124 c#  .net  generics 

7
条件编译和框架目标
如果目标框架是较新的版本,则可以在几个较小的地方极大地改进我的项目代码。我希望能够更好地利用C#中的条件编译来根据需要切换这些条件。 就像是: #if NET40 using FooXX = Foo40; #elif NET35 using FooXX = Foo35; #else NET20 using FooXX = Foo20; #endif 这些符号中的任何一个免费吗?我是否需要在项目配置中注入这些符号?这样做似乎很容易,因为我将了解MSBuild所针对的框架。 /p:DefineConstants="NET40" 人们如何处理这种情况?您要创建其他配置吗?您是通过命令行传递常量吗?
124 c#  .net-3.5  msbuild  .net-4.0 

8
在Visual Studio中“将所有警告视为错误,但……除外”
在Visual Studio中,我可以选择“将警告视为错误”选项,以防止在有任何警告的情况下编译我的代码。我们的团队使用此选项,但我们希望保留两个警告作为警告。 有一个选项可以禁止显示警告,但是我们确实希望它们显示为警告,所以这行不通。 看来,获得所需行为的唯一方法是在“特定警告”文本框中输入每个C#警告编号的列表,但我们希望将其视为警告的两个除外。 除了维护上的麻烦之外,此方法的最大缺点是一些警告没有数字,因此无法明确引用。例如,“无法解析此引用。无法找到程序集'Data ....'。” 有人知道更好的方法吗? 为那些看不到为什么有用的人澄清。考虑一下大多数警告的工作方式。他们告诉您刚刚编写的代码有些不对劲。修复它们大约需要10秒钟,这使代码库更加整洁。 “过时”警告与此完全不同。有时修复它意味着只使用一个新的方法签名。但是,如果整个类都已过时,并且您的用法分散在成千上万的代码行中,则修复可能需要数周甚至更长的时间。您不希望这么长时间破坏构建,但是您确实希望看到关于它的警告。这不仅仅是一个假设的情况-这发生在我们身上。 文字上的“#警告”警告也很独特。我经常想签入,但是我不想破坏构建。
124 c#  msbuild 


4
使用StringFormat将字符串添加到WPF XAML绑定
我有一个WPF 4应用程序,其中包含一个TextBlock,该TextBlock具有单向绑定到整数值(在这种情况下为摄氏度)的功能。XAML看起来像这样: &lt;TextBlock x:Name="textBlockTemperature"&gt; &lt;Run Text="{Binding CelsiusTemp, Mode=OneWay}"/&gt;&lt;/TextBlock&gt; 这对于显示实际温度值效果很好,但是我想格式化该值,因此它包括°C而不是数字(30°C而不是30)。我一直在阅读有关StringFormat的文章,并且看到了一些类似的通用示例: // format the bound value as a currency &lt;TextBlock Text="{Binding Amount, StringFormat={}{0:C}}" /&gt; 和 // preface the bound value with a string and format it as a currency &lt;TextBlock Text="{Binding Amount, StringFormat=Amount: {0:C}}"/&gt; 不幸的是,在我尝试执行的过程中,我所见的所有示例均未将字符串附加到绑定值上。我敢肯定它一定很简单,但是我找不到运气。谁能告诉我该怎么做?


1
Roslyn SyntaxNodes是否可以重用?
我一直在研究Roslyn CTP,尽管它解决了与Expression Tree API类似的问题,但两者都是不可变的,但Roslyn却以完全不同的方式做到了: Expression节点没有对父节点的引用,而是使用进行了修改ExpressionVisitor,因此可以重复使用大部分部件。 SyntaxNode另一方面,罗斯林(Roslyn's )对其父节点进行了引用,因此所有节点实际上都成为了无法重用的块。类似的方法Update,ReplaceNode等等,提供了进行修改。 这在哪里结束?Document?Project?ISolution?API促进了树的逐步更改(而不是向上按钮),但是是否每个步骤都进行了完整复制? 他们为什么做出这样的选择?我缺少一些有趣的把戏吗?

3
ReSharper / C#中的“代理减法具有不可预测的结果”?
使用myDelegate -= eventHandlerReSharper(版本6)问题时: 委托减法具有不可预测的结果 JetBrains在此解释了背后的原因。该解释是合理的,并且在阅读之后,我怀疑我对-on委托的所有使用。 那么如何, 我可以编写一个非自动事件而不会使ReSharper脾气暴躁吗? 或者,是否有更好和/或“正确”的方法来实现这一目标? 或者,我可以忽略ReSharper吗? 这是简化的代码: public delegate void MyHandler (object sender); MyHandler _myEvent; public event MyHandler MyEvent { add { _myEvent += value; DoSomethingElse(); } remove { _myEvent -= value; // &lt;-- ReSharper warning here } }

8
如何将一条线拆分并修剪成一条线?
我想分割这一行: string line = "First Name ; string ; firstName"; 到其修剪版本的数组中: "First Name" "string" "firstName" 我怎样才能一齐完成这一切?下面给我一个错误“无法转换类型无效”: List&lt;string&gt; parts = line.Split(';').ToList().ForEach(p =&gt; p.Trim());
124 c#  .net  split  trim 

8
当作为纯Delegate参数提供时,为什么必须强制转换lambda表达式
采取方法System.Windows.Forms.Control.Invoke(Delegate方法) 为什么会给出编译时错误: string str = "woop"; Invoke(() =&gt; this.Text = str); // Error: Cannot convert lambda expression to type 'System.Delegate' // because it is not a delegate type 但这工作正常: string str = "woop"; Invoke((Action)(() =&gt; this.Text = str)); 该方法何时需要普通代表?
124 c#  c#-3.0  delegates  lambda 


8
获取子字符串-某些字符之前的所有内容
我正在尝试找出在字符串中的-字符之前获取所有内容的最佳方法。下面是一些示例字符串。字符串之前的长度-可以不同,可以是任意长度 223232-1.jpg 443-2.jpg 34443553-5.jpg 所以我需要从0开始索引到-之前的值。因此,子字符串将变为223232、443和34443553
124 c# 

15
按Enter时停止“ Ding”
我有一个非常简单的Windows窗体应用程序。并且,在Windows(或至少Windows Forms应用程序)中,当您在单行TextBox控件内按Enter时,您会听到叮叮。这是一种令人不愉快的声音,表明您不能输入换行符,因为它是单行的TextBox。 一切都很好。但是,在我的窗体中,我有1个文本框和一个搜索按钮。而且我允许用户通过按Enter他们已经完成键入之后,所以他们不执行搜索必须使用鼠标单击搜索按钮。 但是这种叮sound的声音发生了。真烦人 我们如何才能使声音完全不在我的Form中播放? @David H-这是我检测回车的方式: private void textBox1_KeyUp(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { // Perform search now. } }

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.