Questions tagged «c#»

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

7
程序员应该使用SSIS吗?如果是,为什么?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 作为.NET开发人员,由于什么原因我应该比编写代码更喜欢SSIS包?我目前正在工作的工厂中有大量的软件包,它们既是“编写”(也许是平局?)和维护的噩梦。每个程序包看起来像一碗五彩的意大利面条,在抽象分解点混合了C#和VB.NET脚本。为了弄清楚每个“ Execute SQL Task”或“ Foreach Loop”的作用,我必须双击该死的东西,并浏览散布在多个选项卡中的文字值和表达式树。 我态度开放,所以我想知道是否有其他优秀的开发人员发现SSIS比编写一些代码更有生产力。如果您发现SSIS更具生产力,请告诉我原因。
94 c#  .net  sql-server  ssis 

13
元组旨在解决什么要求?
我正在查看元组的新C#功能。我很好奇,元组旨在解决什么问题? 您在应用程序中使用了元组做什么? 更新资料 感谢您到目前为止的回答,让我看看我是否脑子里有很多东西。指出了元组的一个很好的例子作为坐标。这看起来正确吗? var coords = Tuple.Create(geoLat,geoLong); 然后像这样使用元组: var myLatlng = new google.maps.LatLng("+ coords.Item1 + ", "+ coords.Item2 + "); 那是对的吗?
94 c#  tuples 

3
使用“在何时捕获”捕获异常
我遇到了C#中的这一新功能,该功能允许在满足特定条件时执行catch处理程序。 int i = 0; try { throw new ArgumentNullException(nameof(i)); } catch (ArgumentNullException e) when (i == 1) { Console.WriteLine("Caught Argument Null Exception"); } 我试图了解何时可能有用。 一种情况可能是这样的: try { DatabaseUpdate() } catch (SQLException e) when (driver == "MySQL") { //MySQL specific error handling and wrapping up the exception } catch (SQLException …

4
为什么在比较结构时此断言会引发格式异常?
我试图断言两个System.Drawing.Size结构的相等性,并且我得到了格式异常,而不是预期的断言失败。 [TestMethod] public void AssertStructs() { var struct1 = new Size(0, 0); var struct2 = new Size(1, 1); //This throws a format exception, "System.FormatException: Input string was not in a correct format." Assert.AreEqual(struct1, struct2, "Failed. Expected {0}, actually it is {1}", struct1, struct2); //This assert fails properly, "Failed. Expected {Width=0, …

8
GetType()可以说谎吗?
基于几天前在SO中问到的以下问题:GetType()和多态性,并阅读Eric Lippert的回答,我开始考虑是否将GetType()非虚拟方法真正确保对象不能躺在其上Type。 具体来说,埃里克(Eric)的回答陈述如下: 框架设计人员不会添加非常危险的功能,例如仅允许对象与该类型的其他三种方法保持一致就允许该对象躺在其类型上。 现在的问题是:我可以使一个与它的类型有关的对象不立即变得明显吗?我在这里可能是非常错误的,如果是这种情况,我希望澄清一下,但是请考虑以下代码: public interface IFoo { Type GetType(); } 以及上述接口的以下两种实现: public class BadFoo : IFoo { Type IFoo.GetType() { return typeof(int); } } public class NiceFoo : IFoo { } 然后,如果您运行以下简单程序: static void Main(string[] args) { IFoo badFoo = new BadFoo(); IFoo niceFoo = new NiceFoo(); Console.WriteLine("BadFoo …
94 c#  types 

3
在C#/ WinForms中制作多语言应用程序的最佳实践?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我一直在研究使应用程序适合C#中的多种语言,因为我需要在这种情况下进行一个小的项目。我发现基本上有两种方法可以做到这一点: 将表单的Localizable属性设置为true,设置Language属性,填充所有标签等,即可完成操作。我在此看到的主要缺点是:如何制作不属于表单的其他内容以支持多种语言(例如,弹出窗口,日志文件或窗口等)。 创建一个资源文件,例如“ Lang.en-us.resx”,并为每种语言创建一个资源文件,例如“ Lang.nl-nl.resx”,并用字符串填充。IDE似乎会自动为我生成一个类,因此在代码中我只能使用Lang.SomeText。我在此看到的最大缺点是:对于每种形式,我都需要自己在代码中设置所有标签和其他标题(并且似乎数据绑定不适用于这些资源)。 但是,我敢肯定,还有其他方法可以做到这一点。 那么,最佳实践是什么?对于小型应用程序(几种形式,数据库连接等),最简单的方法是什么?对于大型应用程序,哪种方法最合适?

11
如何动态指定Linq OrderBy参数?
如何orderby使用我作为参数的值指定传递给参数的参数? 例如: List<Student> existingStudends = new List<Student>{ new Student {...}, new Student {...}} 目前执行: List<Student> orderbyAddress = existingStudends.OrderBy(c => c.Address).ToList(); 而不是c.Address,我怎样才能将其作为参数? 例 string param = "City"; List<Student> orderbyAddress = existingStudends.OrderByDescending(c => param).ToList();
94 c#  linq 

5
Linq Query不断抛出“无法创建类型为System.Object…的常量值”,为什么?
以下是代码示例: private void loadCustomer(int custIdToQuery) { var dbContext = new SampleDB(); try { var customerContext = from t in dbContext.tblCustomers // keeps throwing: where t.CustID.Equals(custIdToQuery) // Unable to create a constant value of type 'System.Object'. select new // Only primitive types ('such as Int32, String, and Guid') { // are …

9
Windows GUI:WPF或WinRT(2015+)
我试图概述在Windows World中构建GUI时要使用的不同技术。 对于上下文,我正在构建一个小的2D平台多人游戏。(仅出于学习目的。) 我的老师说他认为WPF是正确的方法,但似乎他只将它与Windows Forms进行了比较。 我的理解是,在2015年,Windows Forms完全死了吗? 在其他有关堆栈的问题中,他们说WinRT + XAML用于Metro GUI的构建(Window 8平铺东西!),而且WPF似乎仅用于Window 7/8中的桌面,并且与Silverlight密切相关。 Windows 8运行时(WinRT / Windows Store应用程序/ Windows 10 Universal App)与Silverlight和WPF相比如何? 桌面是旧应用程序所在的位置(红色WFP)。 新型应用程序Metro应用程序可以通过多种方式构建,包括通过VB.NET,C#或C ++。这三种语言选项可以使用XAML来构建UI。另一种选择是使用JavaScript / HTML5 / CSS来开发UI和应用程序代码。 我真正的问题是:在Window World中是否没有一种构建GUI的好方法? 如果没有,那么应该在Window 7,Window 8(台式机和Metro),Window Phone(和Windows 10!)甚至x-box上使用哪种技术。 这样对不同的技术进行比较吗? 您认为投资时间正确吗?


16
C#可排序集合,允许重复的键
我正在编写一个程序来设置顺序,在该顺序中各种对象将出现在报表中。序列是Excel电子表格上的Y位置(单元格)。 下面是代码的演示部分。我想要完成的是拥有一个集合,这将使我可以添加多个对象,并且我可以基于序列获得排序的集合 SortedList list = new SortedList(); Header h = new Header(); h.XPos = 1; h.name = "Header_1"; list.Add(h.XPos, h); h = new Header(); h.XPos = 1; h.name = "Header_2"; list.Add(h.XPos, h); 我知道SortedList不允许这样做,并且我一直在寻找替代项。我不想删除重复项,并且已经尝试过了List<KeyValuePair<int, object>>。 谢谢。

7
在C#泛型中无效?
我有一个接受请求并提供响应的通用方法。 public Tres DoSomething<Tres, Treq>(Tres response, Treq request) {/*stuff*/} 但是我并不总是希望为我的请求提供响应,也不总是希望提供请求数据来获得响应。我也不想完全复制和粘贴方法以进行较小的更改。我想要的是能够做到这一点: public Tre DoSomething<Tres>(Tres response) { return DoSomething<Tres, void>(response, null); } 以某种方式可行吗?似乎专门使用void无效,但是我希望找到类似的东西。
94 c#  generics 

2
“折叠” LINQ扩展方法在哪里?
我在MSDN的Linq样本中发现了一个我想使用的名为Fold()的整洁方法。他们的例子: double[] doubles = { 1.7, 2.3, 1.9, 4.1, 2.9 }; double product = doubles.Fold((runningProduct, nextFactor) => runningProduct * nextFactor); 不幸的是,无论是在示例中还是在我自己的代码中,我都无法对此进行编译,并且在MSDN中找不到其他提及此方法的地方(例如Enumerable或Array扩展方法)。我得到的错误是一个普通的旧“不知道该错误”错误: error CS1061: 'System.Array' does not contain a definition for 'Fold' and no extension method 'Fold' accepting a first argument of type 'System.Array' could be found (are you missing a …



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.