Questions tagged «c#»

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

5
C#在位图上写文本
我有以下问题。我想在C#Windows窗体中制作一些图形。我想读取位图到我的程序,然后在该位图上写一些文本。最后,我希望将此图片加载到pictureBox。这是我的问题。我该怎么做? 例如,它如何工作: Bitmap a = new Bitmap(@"path\picture.bmp"); a.makeTransparent(); // ? a.writeText("some text", positionX, positionY); pictuteBox1.Image = a; 有可能吗?
69 c#  drawing 


2
什么是Visual Studio 8中程序集引用的Aliases属性
当我在Visual Studio 8中将程序集引用添加到项目时,该引用的Aliases属性将设置为“ global”。此属性有什么用处?为什么设置为global? MSDN告诉我,这是程序集别名的列表,但不是为什么我可能要使用此属性,或者为什么大多数别名都为“ global”。 MSDN参考


5
为什么此多态C#代码打印出它的功能?
最近,为我提供了以下代码,作为一种难题,以帮助理解OOP-C#中的多态性和继承。 // No compiling! public class A { public virtual string GetName() { return "A"; } } public class B:A { public override string GetName() { return "B"; } } public class C:B { public new string GetName() { return "C"; } } void Main() { A instance = new …

2
来自数据库的ASP.NET MVC CMS动态路由
基本上,我有一个使用ASP.NET MVC构建的CMS后端,现在我要转到前端站点,并且需要能够根据输入的路由从cms数据库加载页面。 因此,如果用户输入domain.com/students/information,则MVC将在pages表中查找是否存在一个具有与学生/信息匹配的永久链接的页面,如果是这样,它将重定向到页面控制器,然后加载该页面数据库中的数据并将其返回到视图以显示。 到目前为止,我已经尝试了一条通吃的路线,但它仅适用于两个URL段,因此/ students / information无效,但对/ students / information / fall无效。我在网上找不到有关如何完成此操作的任何内容,因此尽管我会在这里问,但是在找到并开放源代码的ASP.NET MVC cms并剖析代码之前,我会在这里问。 这是我到目前为止的路由配置,但是我觉得有更好的方法可以做到这一点。 public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); // Default route to handle core pages routes.MapRoute(null,"{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional }, new { controller = "Index" } ); // CMS route to …

10
如何调试从TeamCity部署的nuget包?
我已经将团队使用的库放入nuget包中,该包从TeamCity部署到网络文件夹中。我无法调试此代码!SymbolSource是我已了解的一种解决方案,但我宁愿找到某种方法直接从TeamCity访问.pdb / source文件。有谁知道如何做到这一点? 编辑。 当我检查'Include Symbols and Source'Nuget Pack构建步骤时,除了网络文件夹中的.nupkg文件之外,TeamCity还创建一个.Symbol.nupkg。.Symbol.nupkg包含src和.pdb文件。 编辑。 我取消选中'Include Symbols and Source'TeamCity,并在nuspec文件中添加了以下内容: <files> <file src="..\MyLibrary\bin\release\MyLibrary.dll" target="lib\net40" /> <file src="..\MyLibrary\bin\release\MyLibrary.pdb" target="lib\net40" /> <file src="..\MyLibrary\*.cs" target="src" /> <file src="..\MyLibrary\**\*.cs" target="src" /> </files> 这在nuget包中为我的库添加了dll,pdb和源文件,并且没有生成.Symbols文件,我认为这仅对符号服务器有用。

5
如何使用Newtonsoft JSON.NET将JSON反序列化为IEnumerable <BaseType>
给出以下JSON: [ { "$id": "1", "$type": "MyAssembly.ClassA, MyAssembly", "Email": "me@here.com", }, { "$id": "2", "$type": "MyAssembly.ClassB, MyAssembly", "Email": "me@here.com", } ] 这些类: public abstract class BaseClass { public string Email; } public class ClassA : BaseClass { } public class ClassB : BaseClass { } 如何将JSON反序列化为: IEnumerable&lt;BaseClass&gt; deserialized; 我不能使用,JsonConvert.Deserialize&lt;IEnumerable&lt;BaseClass&gt;&gt;()因为它抱怨BaseClass很抽象。
69 c#  json.net 

10
如何防止和/或处理StackOverflowException?
我想防止或处理我正在编写的StackOverflowException从调用XslCompiledTransform.Transform方法中得到的a Xsl Editor。问题似乎是用户可以编写一个Xsl script无限递归的,并且只会在调用该Transform方法时炸毁。(也就是说,问题不仅是典型的程序错误,通常是此类异常的原因。) 有没有一种方法可以检测和/或限制允许的递归次数?还是有其他想法可以阻止此代码对我产生负面影响?

5
接口的可选参数
使用c#4.0-构建接口和实现该接口的类。我想在接口中声明一个可选参数,并将其反映在类中。因此,我有以下内容: public interface IFoo { void Bar(int i, int j=0); } public class Foo { void Bar(int i, int j=0) { // do stuff } } 这样可以编译,但是看起来不正确。接口需要具有可选参数,因为否则它将无法正确反映在接口方法签名中。 我应该跳过可选参数,而只使用可为空的类型吗?还是会按预期工作而没有副作用或后果?

3
什么时候复制C#值/对象,什么时候复制其引用?
我一遍又一遍地不断遇到相同的问题,在该位置我要引用的对象被复制或在我要复制的对象被引用。当我使用=运算符时,会发生这种情况。 例如,如果我将对象发送到另一种形式,即: SomeForm myForm = new SomeForm(); SomeObject myObject = new SomeObject(); myForm.formObject = myObject; ...然后修改表单中的对象,原始对象不会被修改。好像对象已被复制但未被引用。但是,当我这样做时: SomeObject myObject = new SomeObject(); SomeObject anotherObject = new SomeObject(); anotherObject = myObject; ...然后修改anotherObject,也myObject将被修改。 最糟糕的情况是当我尝试克隆我定义的对象之一时: public class SomeObject { double value1, value2; //default constructor here public SomeObject(val1, val2) { value1 = val1; value2 = …

4
在Xamarin.Forms中,Device.BeginInvokeOnMainThread()在物理设备上的Release config中不显示来自通知回调* only *的消息框
我将现有的(快速)iOS物理治疗应用程序“ On My Nerves”重写为Xamarin.Forms。这是一个计时器应用程序,可帮助神经受损的人(如我!)进行脱敏锻炼。您拥有这些“面料”(例如羽毛),其中每个面料都有“ x”秒倒数。当结构的计时器到达0时,将出现一个消息框,显示“时间到”。用户单击确定,下一个结构开始其倒计时。冲洗并重复列表中的所有布料。这是显示工作流程的视频。相信我在视频中的UX。 这是我的示例应用程序代码,演示了此行为。 该DoSomethingForNow方法(请原谅我的命名策略)是NotificationTime的回调(请参见第65行-没有足够的SO rep点用于直接链接),该回调是在计时器启动时创建的,以防应用获取背景。 在设备的“释放”模式下不起作用的特定呼叫在第115行 Device.BeginInvokeOnMainThread( async () =&gt; await ShowAlertAndWaitForUser(currentFabricCount)); 该async () =&gt; await ShowAlertAndWaitForUser(currentFabricCount))预期在调试和发布配置上的iOS模拟器,并在设备的调试配置的工作。 但是,指示时间已到的消息框不会出现在物理设备上的Release config中。我无法弄清楚为什么Device.BeginInvokeOnMainThread()在设备的Release config中不起作用。到底是怎么回事? 重用笔记 Device.StartTimer() 之所以我 早些时候改用James的FrenchPressTimer解决方案(请参阅jamesmontemagno / FrenchPressTimer),是因为我需要一种取消/停止/无论用户是否需要暂停或停止应用程序倒计时的方法。Device.StartTimer() Device.StartTimer() 该 代码对我在模拟器和设备上的所有配置都非常有效,并且值得庆幸的是有人向我展示了如何取消Device.StartTimer(谢谢!)。如果要查看此工作解决方案,请在GitHub上查看saraford / Device-StartTimer-Working-Xamarin。Device.StartTimer() 我的具体问题是,为什么Device.BeginInvokeOnMainThread()从物理设备上的Release config中的通知回调调用时不显示消息框。 我也尝试了不同的链接器组合。没有效果。

10
如何在新标签页中打开剃刀动作链接?
我试图让我的链接在新标签页中打开(它必须为剃须刀格式): &lt;a href="@Url.Action("RunReport", "Performance", new { reportView = Model.ReportView.ToString() }, new { target = "_blank" })" type="submit" id="runReport" class="button Secondary"&gt;@Reports.RunReport&lt;/a&gt; 虽然这不起作用。有人知道怎么做吗?
69 c#  html  razor 

5
有没有一种方法可以检测调试器是否从C#附加到另一个进程?
我有一个程序,Process.Start()另一个程序,它在N秒后将其关闭。 有时我选择将调试器附加到启动的程序。在那种情况下,我不希望N秒后关闭进程。 我希望主机程序能够检测是否连接了调试器,因此可以选择不关闭调试器。 说明:我不是要检测调试器是否已附加到我的进程中,而是要检测调试器是否已附加到我生成的进程中。
69 c#  debugging 

6
如何在C#中读取和写入文件
我想同时读取和写入文件。这行不通。 static void Main(string[] args) { StreamReader sr = new StreamReader(@"C:\words.txt"); StreamWriter sw = new StreamWriter(@"C:\words.txt"); } 如何在C#中读取和写入文件?
69 c#  file-io  filestream 

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.