Questions tagged «c#»

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

15
线程安全的List <T>属性
我想要一个List&lt;T&gt;作为属性的实现,可以毫无疑问地在线程安全地使用它。 像这样: private List&lt;T&gt; _list; private List&lt;T&gt; MyT { get { // return a copy of _list; } set { _list = value; } } 似乎仍然需要返回集合的副本(克隆的),因此,如果在某个地方我们正在迭代集合并且同时设置了集合,则不会引发异常。 如何实现线程安全的集合属性?


2
在Visual Studio中将“嵌入互操作类型”设置为true和false有什么区别?
在Visual Studio中,当向项目添加一个引用时,属性窗口具有选项Embed Inteop Types,如果我们将其设置为True或False?有什么不同? 由于我们有很多项目,其中有些项目的参考设置为False,其他项目的设置为True,这完全是一团糟。bulid服务器也有相同的警告: “创建对嵌入式互操作程序集的引用”是什么意思? 因此,我们计划将所有更改Embed Inteop Types为False,我们会遇到什么风险?
121 c#  visual-studio 

6
“打开/关闭” SqlConnection还是保持打开状态?
我用静态方法在简单的静态类中实现了我的业务逻辑。这些方法中的每一个在调用时都会打开/关闭SQL连接: public static void DoSomething(string something) { using (SqlConnection connection = new SqlConnection("...")) { connection.Open(); // ... connection.Close(); } } 但是我认为避免打开和关闭连接会节省性能。我很久以前用OleDbConnection类(不确定SqlConnection)进行了一些测试,它确实可以像这样工作(据我所记得): //pass the connection object into the method public static void DoSomething(string something, SqlConnection connection) { bool openConn = (connection.State == ConnectionState.Open); if (!openConn) { connection.Open(); } // .... if …
121 c#  sqlconnection 

10
DisplayNameAttribute的本地化
我正在寻找一种本地化PropertyGrid中显示的属性名称的方法。使用DisplayNameAttribute属性可以将该属性的名称“覆盖”。不幸的是,属性不能具有非常量表达式。因此,我不能使用强类型资源,例如: class Foo { [DisplayAttribute(Resources.MyPropertyNameLocalized)] // do not compile string MyProperty {get; set;} } 我环顾四周,发现一些建议可以从DisplayNameAttribute继承来使用资源。我最终会得到如下代码: class Foo { [MyLocalizedDisplayAttribute("MyPropertyNameLocalized")] // not strongly typed string MyProperty {get; set;} } 但是,我失去了强类型资源的好处,这绝对不是一件好事。然后我遇到了DisplayNameResourceAttribute,这可能是我想要的。但这应该在Microsoft.VisualStudio.Modeling.Design命名空间中,而我找不到应该为该命名空间添加的引用。 有人知道是否有一种简便的方法可以很好地实现DisplayName本地化?或者是否可以使用Microsoft似乎在Visual Studio中使用的方式?


19
如何从Visual Studio以调试模式运行NUnit?
我最近一直在为我一直在努力的C#构建测试框架。我已经在工作区中设置了NUnit并创建了一个新项目来测试组件。如果我从Nunit(v2.4)加载单元测试,一切都很好,但是我已经意识到在调试模式下运行并设置一些断点确实很有用。 我尝试了一些指南中的建议,这些指南都建议更改测试项目的“ Debug”属性: Start external program: C:\Program Files\NUnit 2.4.8\bin\nunit-console.exe Command line arguments: /assembly: &lt;full-path-to-solution&gt;\TestDSP\bin\Debug\TestDSP.dll 我在那里使用的是控制台版本,但也尝试过调用GUI。尝试开始调试时,两者都给我相同的错误: Cannot start test project 'TestDSP' because the project does not contain any tests. 这是因为我通常将\ DSP.nunit加载到Nunit GUI中,并且是进行测试的地方吗? 我开始认为问题可能是VS想要运行它自己的测试框架,这就是为什么它找不到NUnit测试的原因? 编辑:对于那些询问测试装置的人,我在TestDSP项目中的.cs文件之一大致如下: namespace Some.TestNamespace { // Testing framework includes using NUnit.Framework; [TestFixture] public class FirFilterTest { [Test] public void …


12
在Visual Studio中有控制台应用程序而不是控制台的输出
当使用Eclipse在Java中制作控制台应用程序时,我看到输出被放在IDE本身的文本框中,而不是像Visual Studio那样弹出控制台。这很方便,因为即使程序退出后,我仍然可以充分利用其中编写的文本,因为直到再次运行它才会被擦除。使用Visual Studio可以实现类似的功能吗?我知道,除了做 System.Console.WriteLine(str); 我可以 System.Diagnostics.Debug.WriteLine(str); 但这不是完全一样的事情,因为在“输出”窗口中会出现很多“垃圾”,包括所有已加载的符号等。 更好的是,是否可以在运行应用程序时在IDE本身中完成所有操作,而不是在控制台中运行?


4
在WPF中创建菜单栏?
我想在WPF应用程序中创建一个与Windows窗体中的菜单栏相同的菜单栏。 我该怎么做? WPF控件工具箱中的菜单选项仅提供一个空白栏。
120 c#  wpf  xaml 

11
如何在MVC中将PDF返回到浏览器?
我有这个iTextSharp的演示代码 Document document = new Document(); try { PdfWriter.GetInstance(document, new FileStream("Chap0101.pdf", FileMode.Create)); document.Open(); document.Add(new Paragraph("Hello World")); } catch (DocumentException de) { Console.Error.WriteLine(de.Message); } catch (IOException ioe) { Console.Error.WriteLine(ioe.Message); } document.Close(); 如何获得控制器以将pdf文档返回到浏览器? 编辑: 运行此代码会打开Acrobat,但出现错误消息“文件已损坏,无法修复” public FileStreamResult pdf() { MemoryStream m = new MemoryStream(); Document document = new Document(); PdfWriter.GetInstance(document, m); document.Open(); …

6
如何在代码中向WPF标签添加文本?
我感到很愚蠢,但无法找出如何在代码中向WPF Label控件添加文本。就像下面的TextBlock一样: DesrTextBlock.Text = "some text"; Label中等效的属性是什么? DesrLabel.??? = "some text"; //something like this
120 c#  wpf 

2
是否有必要在C#中显式删除事件处理程序
我有一堂课,提供一些活动。该类是全局声明的,但不能在该全局声明上实例化-可以根据需要在需要它的方法中实例化该类。 每次在方法中需要该类时,都会对其进行实例化并注册事件处理程序。在方法超出范围之前是否有必要显式删除事件处理程序? 当方法超出范围时,类的实例也将超出范围。将事件处理程序注册到超出范围的该实例中是否会产生内存占用空间?(我想知道事件处理程序是否使GC不再看到类实例不再被引用。)

8
Windows 8中的Metro应用程序如何与同一台计算机上的后端桌面应用程序通信?
如果您具有使用Windows 8的Metro新应用程序构建的UI前端,并且希望它与运行在同一本地计算机上的桌面上的.NET应用程序(例如Windows服务应用程序)进行通信,则这种情况。 Metro应用程序和桌面应用程序之间可以使用哪些形式的进程间通信? 感谢Visual Studio团队的Pavel Minaev,他在此处的注释中提供了一些初始信息,并引用了: 根据马丁·洛夫(Martyn Lovell)的说法,没有任何故意的机制,有意使用的机制受到有意限制。例如,命名管道不存在,内存映射文件也不存在。有套接字(包括服务器套接字),但是当连接到本地主机时,只能连接到同一应用程序。您可以在共享的“已知文件夹”之一中使用普通文件(“文档”,“图片”等),但这是一个相当粗糙的技巧,需要轮询并且对用户可见。- 帕维尔Minaev评论这个问题 因此,如果无法使用常规方法,我会考虑使用Web服务或对数据库进行读/写操作,以实现某种形式的通信,而当进程在同一台计算机上运行时,这两种方法似乎都显得过分了。 我在这里尝试的是有意义的吗?我可以看到需要将Metro应用程序作为桌面上运行的现有服务的前端UI。或者将WPF用于在桌面上运行的前端UI(即非地铁应用程序)会更好。

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.