Tag: C#的

在VB.NET中标记静态类

正如刚刚提到的问题和答案中所述 ,您不能从静态类inheritance。 如何执行与VB.NET中的静态类一起使用的规则? 由于框架在C#和VB之间是兼容的,所以有一种方法可以标记一个类的静态,但似乎没有办法。

ReaderWriterLockSlim是什么时候比一个简单的锁好?

我使用这段代码在ReaderWriterLock上做了一个非常愚蠢的testing,在这种情况下,阅读比写作经常发生4倍: class Program { static void Main() { ISynchro[] test = { new Locked(), new RWLocked() }; Stopwatch sw = new Stopwatch(); foreach ( var isynchro in test ) { sw.Reset(); sw.Start(); Thread w1 = new Thread( new ParameterizedThreadStart( WriteThread ) ); w1.Start( isynchro ); Thread w2 = new Thread( new ParameterizedThreadStart( WriteThread ) ); […]

Java中的#define

我开始用Java编程,我想知道是否存在与C##define等价的东西。 谷歌的一个快速search说,它没有,但任何人都可以告诉我,如果类似的东西在Java中存在? 我试图让我的代码更具可读性。 而不是myArray [0]我想能够写myArray [PROTEINS]为例。

多个添加的实体可能具有相同的主键

这是我的3个实体模型:路线,位置和位置路线。 下面的方法失败,提交时得到exception: public static Route InsertRouteIfNotExists(Guid companyId, IListLocation> locations) { //Loop on locations and insert it without commit InsertLocations(companyId, routesOrLocations); RouteRepository routeRep = new RouteRepository(); Route route = routeRep.FindRoute(companyId, locations); if (route == null) { route = new Route() { CompanyId = companyId, IsDeleted = false }; routeRep.Insert(route); LocationInRouteRepository locInRouteRep = new LocationInRouteRepository(); for (int […]

使接口实现asynchronous

我目前正在尝试使用一些Async方法使我的应用程序。 我所有的IO都是通过一个接口的显式实现完成的,我对如何使这个操作asynchronous有点困惑。 正如我看到的事情,我有两个select在实施: interface IIO { void DoOperation(); } 选项1:执行隐式实现asynchronous并等待隐式实现中的结果。 class IOImplementation : IIO { async void DoOperation() { await Task.Factory.StartNew(() => { //WRITING A FILE OR SOME SUCH THINGAMAGIG }); } #region IIO Members void IIO.DoOperation() { DoOperation(); } #endregion } 选项2:执行显式实现asynchronous并等待隐式实现中的任务。 class IOAsyncImplementation : IIO { private Task DoOperationAsync() { return new Task(() […]

在即时窗口中dynamic导致“Microsoft.CSharp.RuntimeBinder.Binder”未定义或导入错误

如果我在Visual Studio的即时窗口中使用dynamic ,则会出现错误 预定义types“Microsoft.CSharp.RuntimeBinder.Binder”未定义或导入 我该如何解决这个问题?

“”+在C ++中的东西

我一直在我的代码中发生非常怪异的东西。 我相信我已经把它追踪到标有“here”的部分(当然,代码是简化的): std::string func() { char c; // Do stuff that will assign to c return "" + c; // Here } 当我试图说明这个function的结果时,会发生各种各样的事情。 我想我甚至设法得到一些底层的C ++文档,还有许多分段错误 。 我很清楚,这不适用于C + +(我已经诉诸使用stringstream转换string现在),但我想知道为什么。 在使用了很多C#之后,没有C ++,这让我感到很痛苦。

如何获得只使用c#的目录中的文件名?

当我使用下面的代码行时,我得到一个string数组包含了单个文件的整个path。 private string[] pdfFiles = Directory.GetFiles("C:\\Documents", "*.pdf"); 我想知道是否有办法只检索string中的文件名而不是整个path。

如何检查一个属性是否存在于c#中的dynamic匿名types?

我有一个匿名types的对象,我收到一个方法,我想检查该对象上存在的属性的dynamic。 …. var settings = new { Filename="temp.txt", Size=10 } … function void Settings(dynamic settings) { var exists = IsSettingExist(settings,"Filename") } 我将如何实现IsSettingExist?

.Net等价于旧的vb left(string,length)函数?

作为一个非.NET的程序员,我正在寻找旧的vb函数left(string, length)的.net等价物。 这是懒惰的,它适用于任何长度的string。 正如所料, left("foobar", 3) = "foo"而最有帮助的是left("f", 3) = "f" 。 在.net string.Substring(index, length)抛出所有超出范围的exception。 在Java中我总是有Apache-Commons lang.StringUtils方便。 在谷歌我没有太多的searchstring函数。 编辑: @Noldorin – 哇,谢谢你的vb.net扩展! 我第一次遇到,虽然我花了几秒钟在c#中做同样的事情: public static class Utils { public static string Left(this string str, int length) { return str.Substring(0, Math.Min(length, str.Length)); } } 请注意静态类和方法以及this关键字。 是的,他们就像"foobar".Left(3)一样简单"foobar".Left(3) 。 另请参阅msdn上的c#扩展 。