Questions tagged «c#»

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

4
SignalR Console应用程序示例
是否有一个使用signalR将消息发送到.net集线器的控制台或Winform应用程序的小示例?我尝试了.net示例,并查看了Wiki,但对我而言,集线器(.net)和客户端(控制台应用程序)之间的关系没有任何意义(找不到此类示例)。该应用程序是否仅需要连接集线器的地址和名称? 是否有人可以提供一小段代码来显示应用程序连接到集线器并发送“ Hello World”或.net集线器收到的内容? PS。我有一个标准的中心聊天示例,该示例很好用,如果我尝试在Cs中为其指定中心名称,它将停止工作,即[HubName(“ test”)],您知道原因吗? 谢谢。 当前控制台应用程序代码。 static void Main(string[] args) { //Set connection var connection = new HubConnection("http://localhost:41627/"); //Make proxy to hub based on hub name on server var myHub = connection.CreateProxy("chat"); //Start connection connection.Start().ContinueWith(task => { if (task.IsFaulted) { Console.WriteLine("There was an error opening the connection:{0}", task.Exception.GetBaseException()); …
84 c#  signalr 

4
确定使用了ContextMenuStrip的控件
我有一个ContextMenuStrip分配给几个不同的列表框。我试图弄清楚ContextMenuStrip什么时候单击了什么ListBox。我尝试从下面的代码开始,但无法正常工作。在sender有正确的价值,但是当我尝试它分配到menuSubmitted它为空。 private void MenuViewDetails_Click(object sender, EventArgs e) { ContextMenu menuSubmitted = sender as ContextMenu; if (menuSubmitted != null) { Control sourceControl = menuSubmitted.SourceControl; } } 任何帮助都会很棒。谢谢。 使用以下帮助,我弄清楚了: private void MenuViewDetails_Click(object sender, EventArgs e) { ToolStripMenuItem menuItem = sender as ToolStripMenuItem; if (menuItem != null) { ContextMenuStrip calendarMenu = menuItem.Owner as …

7
.NET是否具有内置的EventArgs <T>?
我准备为带有单个参数的事件args创建通用的EventArgs类: public class EventArg&lt;T&gt; : EventArgs { // Property variable private readonly T p_EventData; // Constructor public EventArg(T data) { p_EventData = data; } // Property for EventArgs argument public T Data { get { return p_EventData; } } } 在此之前,C#是否具有与该语言相同的内置功能?我似乎想起了C#2.0发布时遇到的类似情况,但现在找不到了。 或者换一种说法,我必须创建自己的通用EventArgs类,还是C#提供一个?谢谢你的帮助。
84 c#  generics  eventargs 


8
检查字符串是否为有效的Windows目录(文件夹)路径
我试图确定用户输入的字符串对于表示文件夹的路径是否有效。有效是指格式正确。 在我的应用程序中,该文件夹代表安装目的地。提供的文件夹路径是有效的,我想,以确定是否该文件夹存在,如果它不创建它。 我目前正在使用IO.Directory.Exists( String path )。我发现这很好用,除非用户没有正确格式化字符串。发生这种情况时,此方法将返回false,表示该文件夹不存在。但这是一个问题,因为之后我将无法创建该文件夹。 从我的谷歌搜索发现,我建议使用正则表达式来检查格式是否正确。我没有使用正则表达式的经验,并且想知道这是否可行。这是我发现的: Regex r = new Regex( @"^(([a-zA-Z]\:)|(\\))(\\{1}|((\\{1})[^\\]([^/:*?&lt;&gt;""|]*))+)$" ); return r.IsMatch( path ); 将正则表达式测试与结合使用是否Directory.Exists()能给我一个足够好的方法来检查路径是否有效以及路径是否存在?我知道这将随操作系统和其他因素而变化,但是该程序仅针对Windows用户。

7
C#.Equals()、. ReferenceEquals()和==运算符
我对这三个方面的理解是: .Equals()测试数据是否相等(缺少更好的描述)。.Equals()可以为同一对象的不同实例返回True,这是最常用的方法。 .ReferenceEquals() 测试两个对象是否是同一实例,并且不能被覆盖。 ==与ReferenceEquals()默认情况下的相同,但是可以覆盖此设置。 但是C#站指出: 在对象类中,Equals和 ReferenceEquals方法在语义上是等效的,只不过该方法ReferenceEquals仅适用于对象实例。该 ReferenceEquals方法是静态的。 现在我不明白。谁能对此有所启发?
84 c#  equality 

6
在C#中创建通用方法
我正在尝试将一堆类似的方法组合成一个通用方法。我有几种返回查询字符串值的方法,如果该查询字符串不存在或格式不正确,则返回null。如果所有类型本机均可为空,这将很容易,但是我必须对整数和日期使用可为空的泛型类型。 这就是我现在所拥有的。但是,如果数字值无效,它将传回0,但不幸的是,在我的方案中,该值是有效值。有人可以帮我吗?谢谢! public static T GetQueryString&lt;T&gt;(string key) where T : IConvertible { T result = default(T); if (String.IsNullOrEmpty(HttpContext.Current.Request.QueryString[key]) == false) { string value = HttpContext.Current.Request.QueryString[key]; try { result = (T)Convert.ChangeType(value, typeof(T)); } catch { //Could not convert. Pass back default value... result = default(T); } } return result; }
84 c#  generics 

6
将文件转换为字节的可靠方法[]
我在网上找到了以下代码: private byte [] StreamFile(string filename) { FileStream fs = new FileStream(filename, FileMode.Open,FileAccess.Read); // Create a byte array of file stream length byte[] ImageData = new byte[fs.Length]; //Read block of bytes from stream into the byte array fs.Read(ImageData,0,System.Convert.ToInt32(fs.Length)); //Close the File Stream fs.Close(); return ImageData; //return the byte data } …
84 c# 

9
C#中的空参数检查
在C#中,是否有任何充分的理由(除了更好的错误消息之外)向每个无效值都无效的函数添加参数无效检查?显然,使用s的代码仍然会引发异常。这样的检查会使代码变慢并且难以维护。 void f(SomeType s) { if (s == null) { throw new ArgumentNullException("s cannot be null."); } // Use s }
84 c#  function  null 

12
在图形中生成明显不同的RGB颜色
生成图形并显示不同的数据集时,通常最好按颜色区分这些集。因此,一行是红色,下一行是绿色,依此类推。然后的问题是,当数据集的数量未知时,需要随机生成这些颜色,并且它们最终往往彼此非常接近(例如,绿色,浅绿色)。 关于如何解决这个问题以及如何产生截然不同的颜色的任何想法? 如果有任何示例(基于C#和RGB的颜色)(如果您觉得更简单,可以随意讨论问题和解决方案而没有示例,我会很高兴)。
84 c#  random  graph  colors 

7
如何在C#中进行模板专业化
您将如何在C#中进行专业化? 我会提出一个问题。您有模板类型,不知道它是什么。但是您确实知道它是否源于XYZ您要调用.alternativeFunc()。一个很棒的方法是调用一个专用函数或类并normalCall返回,.normalFunc()而对任何派生类型的XYZcall进行其他专门化处理.alternativeFunc()。用C#怎么做?

7
“ int”和“ int”有什么区别?和C#中的“ int”?
我有90%的把握确定我以前在stackoverflow上看到过这个答案,实际上我从未见过“ int?”。语法在这里看到之前,但无论如何搜索,我都找不到上一篇文章,这使我发疯。 我可能是偶然地吃了有趣的蘑菇,但是如果我没有吃,那么有人可以指出或重新解释它吗?我的stackoverflow search-fu显然太低了。
84 c#  syntax  types  nullable 

4
如何在夏令时期间使用TimeZoneInfo获取本地时间?
我试图用来DateTimeOffset在任何时区传达特定的时间点。我不知道如何用它TimeZoneInfo来处理夏时制。 var dt = DateTime.UtcNow; Console.WriteLine(dt.ToLocalTime()); var tz = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"); var utcOffset = new DateTimeOffset(dt, TimeSpan.Zero); Console.WriteLine(utcOffset.ToOffset(tz.BaseUtcOffset)); 打印输出: 2010/6/2下午4:37:19 2010/6/2下午3:37:19 -06:00 我在中央时区,我们目前处于夏令时。我试图让第二行读取: 2010/6/2下午4:37:19 -05:00 BaseUtcOffset 显然不会根据DST进行更改。 如何获得具有正确偏移值的正确时间?

5
并发字典正确用法
我认为这是正确使用并发字典的意思吗? private ConcurrentDictionary&lt;int,long&gt; myDic = new ConcurrentDictionary&lt;int,long&gt;(); //Main thread at program startup for(int i = 0; i &lt; 4; i++) { myDic.Add(i, 0); } //Seperate threads use this to update a value myDic[InputID] = newLongValue; 我没有锁等,并且即使多个线程可能试图执行相同操作,也只是在更新字典中的值。

9
未声明配置元素
我正在Visual Studio 2012 Express Edition中做一些工作。我添加了一个App.config XML文件,如下所示: &lt;?xml version="1.0" encoding="utf-8" ?&gt; &lt;configuration&gt; &lt;/configuration&gt; 发生的第一件事是出现警告,提示“未声明'configuration'元素”。有人知道为什么会这样吗?看来在解决此问题之前不能在其中声明元素。 谢谢! 这是整个XML: &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;configuration&gt; &lt;appSettings&gt; &lt;add key="Version" value="779" /&gt; &lt;add key="TimeOut" value="60000" /&gt; &lt;add key="LogFileName" value="Log.txt" /&gt; &lt;!-- your Developer Id with eBay --&gt; &lt;add key="Environment.DevId" value="" /&gt; &lt;!-- your Application Id with eBay --&gt; …
84 c#  xml  app-config 

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.