Questions tagged «c#»

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

16
字节+字节=整数...为什么?
查看此C#代码: byte x = 1; byte y = 2; byte z = x + y; // ERROR: Cannot implicitly convert type 'int' to 'byte' 对byte(或short)类型执行的任何数学运算的结果都隐式地转换为整数。解决方案是将结果显式转换回一个字节: byte z = (byte)(x + y); // this works 我想知道为什么?它是建筑性的吗?哲学的? 我们有: int+ int=int long+ long=long float+ float=float double+ double=double 那么为什么不呢? byte+ byte=byte short+ short= short? …




4
为什么在实现类上不强制在接口上定义的C#4可选参数?
我注意到,使用C#4中的可选参数,如果您在接口上指定了可选参数,则不必在任何实现类上将该参数设为可选: public interface MyInterface { void TestMethod(bool flag = false); } public class MyClass : MyInterface { public void TestMethod(bool flag) { Console.WriteLine(flag); } } 因此: var obj = new MyClass(); obj.TestMethod(); // compiler error var obj2 = new MyClass() as MyInterface; obj2.TestMethod(); // prints false 有谁知道为什么可选参数设计成这种方式工作? 一方面,我认为覆盖接口上指定的任何默认值的功能很有用,尽管说实话,我不确定您是否应该甚至可以在接口上指定默认值,因为这应该由实现决定。 另一方面,这种断开连接意味着您不能始终交替使用具体的类和接口。当然,如果在实现上指定了默认值,这不会有问题,但是如果您将具体类公开为接口(例如,使用某些IOC框架注入具体类),那么实际上就没有问题了。具有默认值的点作为调用方,无论如何都必须始终提供它。

8
按值获取字典键
如何在C#中按值获取字典键? Dictionary<string, string> types = new Dictionary<string, string>() { {"1", "one"}, {"2", "two"}, {"3", "three"} }; 我想要这样的东西: getByValueKey(string value); getByValueKey("one")必须返回"1"。 最好的方法是什么?也许HashTable,SortedLists?
361 c#  dictionary 

30
在C#中将枚举与字符串关联
我知道以下是不可能的,因为Enumeration的类型必须是int enum GroupTypes { TheGroup = "OEM", TheOtherGroup = "CMB" } 从我的数据库中,我得到了一个不完整代码(the OEM和CMBs)的字段。我想将此字段变成一个enum或其他可以理解的字段。因为如果目标是可读性,则解决方案应该简洁。 我还有什么其他选择?
361 c#  .net 

9
如何在MVC 3中获取当前页面URL
我正在建立的博客上使用Facebook评论插件。它具有一些FBXML标记,这些标记由页面上引用的facebook javascript解释。 一切正常,但是我必须将当前完全合格的URL传递给插件。 <div style="width: 900px; margin: auto;"> <div id="fb-root"></div> <fb:comments href="URL HERE" num_posts="10" width="900"></fb:comments> </div> 获取当前页面URL的最佳方法是什么?请求网址。 解 这是我的解决方案的最终代码: <fb:comments href="@Request.Url.AbsoluteUri" num_posts="15" width="900"></fb:comments>
360 c#  asp.net  asp.net-mvc  razor 



25
使用Visual Studio时可以自动增加文件生成版本吗?
我只是想知道如何使用Visual Studio(2005)自动增加文件的生成(和版本?)。 如果我查找say的属性C:\Windows\notepad.exe,则“版本”选项卡将显示“文件版本:5.1.2600.2180”。我也想在我的dll版本中获得这些很酷的数字,而不是1.0.0.0版本,这让我们面对了它有些沉闷。 我尝试了一些方法,但是它似乎并不是开箱即用的功能,或者也许我只是在错误的地方(通常)。 我主要处理网络项目。 我看了两个: http://www.codeproject.com/KB/dotnet/Auto_Increment_Version.aspx http://www.codeproject.com/KB/dotnet/build_versioning.aspx 而且我不敢相信做某件事会付出太多努力是标准做法。 编辑: 据我所知,它在VS2005中不起作用(http://www.codeproject.com/KB/dotnet/AutoIncrementVersion.aspx)


4
从字符串填充XDocument
我正在做一些事情,我试图弄清楚是否可以从字符串加载XDocument。XDocument.Load()似乎将传递给它的字符串作为物理XML文件的路径。 我想尝试绕过首先必须创建物理XML文件并直接跳至填充XDocument的步骤。 有任何想法吗?
358 c#  xml  c#-3.0  linq-to-xml 

7
处理可能的IEnumerable多个枚举的警告
因此在我的代码中需要使用IEnumerable<>几次,从而得到“可能的多重枚举IEnumerable” 的Resharper错误。 样例代码: public List<object> Foo(IEnumerable<object> objects) { if (objects == null || !objects.Any()) throw new ArgumentException(); var firstObject = objects.First(); var list = DoSomeThing(firstObject); var secondList = DoSomeThingElse(objects); list.AddRange(secondList); return list; } 我可以将objects参数更改为List,然后避免可能的多重枚举,但随后我没有得到可以处理的最高对象。 另一件事,我可以做的就是将转换IEnumerable到List在方法的开头: public List<object> Foo(IEnumerable<object> objects) { var objectList = objects.ToList(); // ... } 但是,这很尴尬。 在这种情况下您会做什么?

15
从字符串中删除所有空格的有效方法?
我正在调用REST API,并且正在收到XML响应。它返回一个工作区名称列表,我正在编写一个快速IsExistingWorkspace()方法。由于所有工作空间均由不带空格的连续字符组成,因此,我假设找出列表中是否存在特定工作空间的最简单方法是删除所有空格(包括换行符),然后执行此操作(XML是从网络接收的字符串)请求): XML.Contains("<name>" + workspaceName + "</name>"); 我知道它是区分大小写的,并且我依靠它。我只需要一种有效删除字符串中所有空格的方法。我知道RegEx和LINQ可以做到,但是我对其他想法持开放态度。我主要只关心速度。

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.