Questions tagged «c#»

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

10
与C#中的typedef等效
在C#中是否存在与typedef等价的东西,或者以某种方式获得了类似的行为?我做了一些谷歌搜索,但是到处看起来都是负面的。目前,我的情况类似于以下情况: class GenericClass<T> { public event EventHandler<EventData> MyEvent; public class EventData : EventArgs { /* snip */ } // ... snip } 现在,不需要火箭科学家去弄清楚,当试图为该事件实现处理程序时,这会很快导致很多类型的输入(对可怕的双关语表示歉意)。最终会变成这样: GenericClass<int> gcInt = new GenericClass<int>; gcInt.MyEvent += new EventHandler<GenericClass<int>.EventData>(gcInt_MyEvent); // ... private void gcInt_MyEvent(object sender, GenericClass<int>.EventData e) { throw new NotImplementedException(); } 除了我而言,我已经在使用复杂类型,而不仅仅是int类型。如果可以简化一点,那就太好了... 编辑:即。也许可以对EventHandler进行typedef定义,而不必重新定义它以获得类似的行为。
326 c#  typedef 

11
如何使用反射调用私有方法?
我的课程中有一组私有方法,我需要根据输入值动态调用一个。调用代码和目标方法都在同一实例中。代码如下: MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType); dynMethod.Invoke(this, new object[] { methodParams }); 在这种情况下,GetMethod()将不会返回私有方法。BindingFlags我需要提供什么GetMethod()以便它可以定位私有方法?

30
GDI +,JPEG图像到MemoryStream中发生一般错误
这似乎是整个网络上的一个臭名昭著的错误。如此之多,以致于我的情况不适合我,因此无法找到解决问题的答案。当我将图像保存到流中时,将引发异常。 奇怪的是,这与png完美兼容,但是对于jpg和gif却给出了上述错误,这非常令人困惑。 那里最类似的问题与未经许可将图像保存到文件有关。具有讽刺意味的是,解决方案是在执行操作时使用内存流。 public static byte[] ConvertImageToByteArray(Image imageToConvert) { using (var ms = new MemoryStream()) { ImageFormat format; switch (imageToConvert.MimeType()) { case "image/png": format = ImageFormat.Png; break; case "image/gif": format = ImageFormat.Gif; break; default: format = ImageFormat.Jpeg; break; } imageToConvert.Save(ms, format); return ms.ToArray(); } } 有关异常的更多详细信息。造成如此多问题的原因是缺乏解释:( System.Runtime.InteropServices.ExternalException was unhandled by …
326 c#  gdi+ 

17
在代码中设置WPF图像源
我正在尝试在代码中设置WPF图像的源。图像作为资源嵌入到项目中。通过查看示例,我得出了以下代码。由于某种原因,它不起作用-无法显示图像。 通过调试,我可以看到流包含图像数据。那怎么了 Assembly asm = Assembly.GetExecutingAssembly(); Stream iconStream = asm.GetManifestResourceStream("SomeImage.png"); PngBitmapDecoder iconDecoder = new PngBitmapDecoder(iconStream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default); ImageSource iconSource = iconDecoder.Frames[0]; _icon.Source = iconSource; 图标定义如下: <Image x:Name="_icon" Width="16" Height="16" />
325 c#  .net  wpf  image 


16
无法建立SSL / TLS安全通道的信任关系— SOAP
我有一个简单的Web服务调用,它是由.NET(C#)2.0 Windows应用程序通过Visual Studio生成的Web服务代理生成的,用于同样用C#(2.0)编写的Web服务。这已经工作了几年,并且在它运行的十几个地方继续这样做。 在新站点上进行的新安装遇到了问题。尝试调用Web服务时,它失败并显示以下消息: 无法为SSL / TLS安全通道建立信任关系 Web服务的URL使用SSL(https://)-但这已经在许多其他地方使用了很长时间了(并将继续这样做)。 我在哪里看?这可能是Windows和.NET之间此安装特有的安全问题吗?如果是这样,我应该在哪里建立信任关系?我迷路了!
325 c#  .net  ssl  trust 


7
实体框架超时
使用功能导入需要超过30秒才能完成时,使用实体框架(EF)导致超时。我尝试了以下操作,但无法解决此问题: 我Default Command Timeout=300000在这里建议的具有EDMX文件的项目的App.Config文件中添加了连接字符串。 这是我的连接字符串如下所示: <add name="MyEntityConnectionString" connectionString="metadata=res://*/MyEntities.csdl|res://*/MyEntities.ssdl| res://*/MyEntities.msl; provider=System.Data.SqlClient;provider connection string=" Data Source=trekdevbox;Initial Catalog=StarTrekDatabase; Persist Security Info=True;User ID=JamesTKirk;Password=IsFriendsWithSpock; MultipleActiveResultSets=True;Default Command Timeout=300000;"" providerName="System.Data.EntityClient" /> 我尝试直接在存储库中设置CommandTimeout,如下所示: private TrekEntities context = new TrekEntities(); public IEnumerable<TrekMatches> GetKirksFriends() { this.context.CommandTimeout = 180; return this.context.GetKirksFriends(); } 我还能做些什么来使EF超时?这仅适用于非常大的数据集。小型数据集一切正常。 这是我遇到的错误之一: System.Data.EntityCommandExecutionException:执行命令定义时发生错误。有关详细信息,请参见内部异常。---> System.Data.SqlClient.SqlException:超时已过期。在操作完成之前超时或服务器没有响应。 好的-我已经开始工作了,这很愚蠢。我同时将连接字符串和Default Command Timeout=300000和CommandTimeout都设置为180。Default Command Timeout从连接字符串中删除时,它可以正常工作。因此,答案是在上下文对象的存储库中手动设置CommandTimeout,如下所示: …

8
如何跳过“ foreach”循环的迭代?
在Perl中,我可以使用next;命令跳过foreach(或任何循环)迭代。 有没有办法跳过迭代并跳转到C#中的下一个循环? foreach (int number in numbers) { if (number < 0) { // What goes here to skip over the loop? } // otherwise process number }
324 c#  .net  loops 



30
GUID不是唯一的简单证明
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我想证明GUID在简单的测试程序中不是唯一的。我希望以下代码可以运行数小时,但无法正常工作。我该如何运作? BigInteger begin = new BigInteger((long)0); BigInteger end = new BigInteger("340282366920938463463374607431768211456",10); //2^128 for(begin; begin<end; begin++) Console.WriteLine(System.Guid.NewGuid().ToString()); 我正在使用C#。
323 c#  guid 

10
使用反射设置对象属性
在C#中,有没有一种方法可以使用反射来设置对象属性? 例如: MyObject obj = new MyObject(); obj.Name = "Value"; 我想开始obj.Name思考。就像是: Reflection.SetProperty(obj, "Name") = "Value"; 有办法吗?

11
为什么在C#中需要装箱和拆箱?
为什么在C#中需要装箱和拆箱? 我知道装箱和拆箱是什么,但我无法理解其实际用途。为什么在哪里使用? short s = 25; object objshort = s; //Boxing short anothershort = (short)objshort; //Unboxing
323 c#  .net  boxing 

30
在C#或.NET中,最奇怪的情况是什么?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 9年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我收集了一些特殊情况和脑筋急转弯,并且总是希望听到更多。该页面仅真正涵盖了C#语言的某些方面,但是我也发现核心.NET方面也很有趣。例如,这不是页面上的,但是我发现它令人难以置信: string x = new string(new char[0]); string y = new string(new char[0]); Console.WriteLine(object.ReferenceEquals(x, y)); 我希望打印出False-毕竟,“ new”(具有引用类型)总是创建一个新对象,不是吗?C#和CLI的规范都表明应该这样做。好吧,不是在这种情况下。它显示True,并且已经在我测试过的框架的每个版本上完成。(坦白地说,我还没有在Mono上尝试过...) 需要明确的是,这只是我正在寻找的一种示例-我并不是特别希望对此奇怪的话题进行讨论/解释。(这与普通的字符串实习不同;特别是,在调用构造函数时,通常不会发生字符串实习。)我真的在要求类似的奇怪行为。 还有其他宝石潜伏在那里吗?
322 c#  .net 

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.