Questions tagged «c#»

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

4
C#:如果从多个线程调用静态方法怎么办?
在我的应用程序中,我有一个静态方法,该方法同时从多个线程中调用。我的数据有混淆的危险吗? 在我的第一次尝试中,该方法不是静态的,并且我正在创建该类的多个实例。在这种情况下,我的数据会以某种方式混淆。我不确定这是怎么发生的,因为它只是偶尔发生。我还在调试。但是现在该方法是静态的,到目前为止我还没有问题。也许只是运气。我不确定



6
C#在字典中存储函数
如何创建可以存储函数的字典? 谢谢。 我有大约30多个可以从用户执行的功能。我希望能够以这种方式执行功能: private void functionName(arg1, arg2, arg3) { // code } dictionaryName.add("doSomething", functionName); private void interceptCommand(string command) { foreach ( var cmd in dictionaryName ) { if ( cmd.Key.Equals(command) ) { cmd.Value.Invoke(); } } } 但是,函数签名并不总是相同的,因此具有不同数量的参数。

10
我怎样才能抓到404?
我有以下代码: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "HEAD"; request.Credentials = MyCredentialCache; try { request.GetResponse(); } catch { } 如何捕获特定的404错误?WebExceptionStatus.ProtocolError只能检测到发生错误,而不能给出错误的确切代码。 例如: catch (WebException ex) { if (ex.Status != WebExceptionStatus.ProtocolError) { throw ex; } } 只是不够有用...协议异常可能是401、503、403,实际上是任何东西。

9
C#的注释继承(实际上是任何语言)
假设我有这个介面 public interface IFoo { ///<summary> /// Foo method ///</summary> void Foo(); ///<summary> /// Bar method ///</summary> void Bar(); ///<summary> /// Situation normal ///</summary> void Snafu(); } 而这个班 public class Foo : IFoo { public void Foo() { ... } public void Bar() { ... } public void Snafu() { …


15
AddBusinessDays和GetBusinessDays
我需要找到2个优雅的完整实现 public static DateTime AddBusinessDays(this DateTime date, int days) { // code here } and public static int GetBusinessDays(this DateTime start, DateTime end) { // code here } 最好是O(1)(无循环)。 编辑:工作日是指工作日(星期一,星期二,星期三,星期四,星期五)。没有假期,只有周末除外。 我已经有了一些看起来可行的丑陋解决方案,但是我想知道是否有优雅的方法可以做到这一点。谢谢 这是我到目前为止写的。它在所有情况下均有效,并且也具有负面效果。仍然需要GetBusinessDays实现 public static DateTime AddBusinessDays(this DateTime startDate, int businessDays) { int direction = Math.Sign(businessDays); if(direction == 1) { if(startDate.DayOfWeek …
93 c#  .net 

17
C#中的工厂模式:如何确保只能由工厂类创建对象实例?
最近,我一直在考虑保护我的一些代码。我很好奇如何确保一个对象永远不能直接创建,而只能通过工厂类的某种方法来创建。让我们说我有一些“业务对象”类,并且我想确保该类的任何实例都具有有效的内部状态。为了实现这一点,我将需要在创建对象之前(可能是在其构造函数中)执行一些检查。没关系,直到我决定我要使此检查成为业务逻辑的一部分。因此,如何安排业务对象只能通过我的业务逻辑类中的某种方法创建而不能直接创建?使用C ++的旧“ friend”关键字的第一个自然愿望将与C#脱节。所以我们需要其他选择... 让我们尝试一些示例: public MyBusinessObjectClass { public string MyProperty { get; private set; } public MyBusinessObjectClass (string myProperty) { MyProperty = myProperty; } } public MyBusinessLogicClass { public MyBusinessObjectClass CreateBusinessObject (string myProperty) { // Perform some check on myProperty if (true /* check is okay */) return new MyBusinessObjectClass …

10
如何设置SQL Server连接字符串?
我正在开发一个简单的C#应用​​程序,我想知道这一点:当我将应用程序连接到PC上的SQL Server时,我知道了连接字符串(服务器名称,密码等),但是当我将其连接到另一个时PC上,SQL Server连接字符串不同。SQL Server中是否有一个可以连接的默认帐户附带的普通帐户?我听说过saSQL Server中的帐户,这是sa什么?

8
在编译时将文件复制到应用程序文件夹中
如果我有一些文件要从项目中复制到.\bin\debug\编译时的文件夹中,那么看来我必须将它们放入项目的根目录中。将它们放入子文件夹似乎会将它们复制到与.\bin\debug\存储它们的结构相同的文件夹中。 有什么办法可以避免这种情况? 只是要清楚一点:如果我在文件夹中有MyFirstConfigFile.txtand MySecondConfigFile.txt,ConfigFiles并且将它们的Copy to Output设置为Copy ...,那么它们将出现在.\bin\debug\ConfigFiles\文件夹中。我希望它们出现在.\bin\debug\文件夹中。
93 c#  visual-studio 

9
Visual Studio中开发人员特定的app.config / web.config文件
我们有几个.NET项目,其中将某些设置存储在配置文件中。 现在,每个开发人员都有各自不同的配置文件(用于连接到本地数据库的不同连接字符串,不同的WCF端点等)。 目前,我们倾向于检出app / web.config文件并对其进行修改以适合我们的需求。 这会导致很多问题,因为从TFS获取最新版本时,有时会有人检查自己的设置或松散的自定义配置。 您如何处理这种情况?还是根本没有这个问题?

8
枚举和匹配属性的C#命名约定
我经常发现自己实现了一个类,该类维护作为枚举的某种状态属性:我有一个Status枚举和一个Status类型的Status属性。我应该如何解决此名称冲突? public class Car { public enum Status { Off, Starting, Moving }; Status status = Status.Off; public Status Status // <===== Won't compile ===== { get { return status; } set { status = value; DoSomething(); } } } 如果Status枚举对于不同类型是通用的,那么我将其放在类之外,这样就可以解决问题。但是Status仅适用于Car,因此在类外声明该枚举没有意义。 在这种情况下,您使用什么命名约定? NB:这个问题在对这个问题的答案的评论中被部分辩论。由于这不是主要问题,因此可见性不高。 编辑:菲利普·埃克伯格(Filip Ekberg)针对特定的“状态”案例提出了IMO出色的解决方法。但是,我会很感兴趣地阅读有关枚举/属性名称不同的解决方案的信息,例如Michael Prewecki的答案。 EDIT2(2010年5月):我最喜欢的解决方案是按照Chris S的建议对枚举类型名称进行复数。根据MS准则,此名称仅应用于标记枚举。但是我变得越来越喜欢它。我现在也将其用于常规枚举。

5
仅在“打开”时才运行的“仅调试”代码
我想添加一些仅在调试人员要求时运行的C#“仅调试”代码。在C ++中,我曾经做过类似以下事情: void foo() { // ... #ifdef DEBUG static bool s_bDoDebugOnlyCode = false; if (s_bDoDebugOnlyCode) { // Debug only code here gets executed when the person debugging // manually sets the bool above to true. It then stays for the rest // of the session until they set it …

11
“ ClickOnce不支持请求执行级别'requireAdministrator。'”
因此,我正在编写一个需要访问注册表的应用程序。我没有涉及任何构建设置,希望在添加其他描述(例如描述或名称)之前使此功能正常运行。 出乎意料的是,我得到了一个不会消失的错误。ClickOnce does not support the request execution level 'requireAdministrator'.现在,我没有在该应用程序中触摸过ClickOnce。我所做的只是包括一个清单文件,要求这些权限。 我现在的问题是该错误不会消失,并且我无法编译程序。有什么建议怎么办?(旁注:我要去睡觉了,所以明天下午我会检查一下)。

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.