【c# – 如何实现Monitor类?】教程文章相关的互联网学习教程文章

c# – 失败转换:IList到实现ICollection的自定义类【代码】

这是我的自定义集合声明.public interface IMenuCollection<T> : ICollection<T> public class HTMLMenuCollection: IMenuCollection<HTMLMenu>我试图从另一个集合IList< T>投射到它.IList<HTMLMenu> htmlMenuList = new List<HTMLMenu>(); ... HTMLMenuCollection tempColl = (HTMLMenuCollection)htmlMenuList;我不知道为什么这不起作用.如果我转换IList< T>到ICollection< T>它工作正常,但有了这个我得到一个无效的强制转换异常...

如何在C#中实现YouTrack REST API

我希望我的.Net C#程序能够在使用REST API向南移动时自动创建YouTrack票证.任何人都可以指向我的C#实现或指导我如何做到这一点?解决方法:YouTrackSharp将是一个良好的开端.

c# – 依赖注入和特定的依赖实现【代码】

首先让我介绍一下没有依赖注入的实现(它会打破依赖倒置原则):public class MyValidator {private readonly IChecksumGenerator _checksumGenerator;public MyValidator(){_checksumGenerator = new MyChecksumGenerator();}... }要使此代码可测试,请注入IChecksumGenerator:public class MyValidator {private readonly IChecksumGenerator _checksumGenerator;public MyValidator(IChecksumGenerator checksumGenerator){_check...

C#中foreach语句的迭代器实现机制【代码】

原文链接:http://www.cnblogs.com/riasky/p/3481600.htmlC#中的foreach语句可用于循环遍历某个集合中的元素,而所有的只要支持了IEnumerable或IEnumerable<T>泛型接口的类型都是可以 用foreach遍历的。其具体的遍历实现过程就是利用C#中的迭代器中的方法来按照特定顺序遍历的。在.NET中IEnumerator和IEnumerator<T> 就是对迭代器的抽象,如果要自定义的类型也支持foreach循环则首先须要声明该类支持IEnumerable或IEnumerable<T>接...

C#实现文件和目录操作大全

最完整的文件和目录操作 资料来源不易。。。。。 1. 检测指定目录是否存在public static class DirFile{/// <summary>/// 检测指定目录是否存在/// </summary>/// <param name="directoryPath">目录的绝对路径</param>/// <returns></returns>public static bool IsExistDirectory(string directoryPath){return Directory.Exists(directoryPath);} 2. 获取指定目录中所有文件列表/// <summary>/// 获取指定目录中所有文件列...

在c#中实现大规模并行应用程序的最佳方法【代码】

我正在研究一个网络绑定的应用程序,它应该有很多(数百个,可能是数千个)并行进程. 我正在寻找实现它的最佳方法. 当我尝试设置时ThreadPool.SetMaxThreads(int.MaxValue, int.MaxValue);而且创建1000个线程并使这些线程并行执行,应用程序的执行变得非常激动. 我听说过delegate.BeginInvoke在某种程度上比新的Thread(…)更好,所以我尝试过,而不是在调试器中打开应用程序,我看到的是并行线程. 如果我必须创建大量的线程,那么确保应用程...

c# – 如何实现密码正则表达式?【代码】

我希望在我的项目中使用正则表达式模式进行验证. 以下是正则表达式的描述: >长度必须至少为8个字符.>必须包含至少1个大写字符.>必须包含至少1个小写字符.>必须至少包含1个数字.>可能包含以下字符:” < > $~ ‘ ` ! @ # % ^ & * ( ) – + { } [ ] = : , . ? / | \>不得使用重复字符. (aa,11等)>不得使用超过3个连续字符. (abcd,wxyz,1234等)解决方法:你可以尝试这个正则表达式:^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$PS:它...

c# – 如何用垃圾收集语言(例如Java / Scala)替换/实现RAII?

在Java和C#等语言中,存在“析构函数”的概念. RAII如何与这个概念正交,以及如何在这些语言中实现?解决方法:最大的区别是调用终结器/析构函数时.对于RAII,当变量超出范围时,它总是被调用,它具有一定的保证时间.使用垃圾收集,在系统确定对象不再使用后随时调用它. 从概念上讲,垃圾收集是具有无限生命周期的对象的实现细节.就您的程序而言,GC’d对象始终存在.这就是为什么它不会被收集,直到没有更多的参考,所以程序永远不需要知道它被...

C#基于类型将类实现接口转换为Class【代码】

我的问题最好用一个例子来解释:public IPlotModel MyPlotModel; public ??? CastedModel;public Constructor() {MyPlotModel = new PlotModel(); //This should be interchangable with other types//E.g.: MyPlotModel = new OtherModel();CastedModel = (MyPlotModel.GetType()) MyPlotModel; }这基本上就是我想要的.CastedModel应该转换为MyPlotModel的类型. 我使用Convert.ChangeType()取得了一些成功.我设法将CastedModel的类...

c# – 创建一个返回实现通用接口的对象的方法【代码】

我有一个方法,应该返回一个实现通用接口的对象.它接受一个参数来确定实例化哪个类并返回实例化的对象.public class PlayerRetriever{public static IPlayer<T> Retrieve(string SitePath){if (SitePath == "Home") { return new Player1(); }else { return new AnotherPlayer(); }}}interface IPlayer<T>{void RunPlayer();List<T> RetrievePlayersByMovie(string movie);}“Player1”和“AnotherPlayer”都实现了IPlayer. 为什么我...

c# – 实现多个接口的参数【代码】

给以下代码:internal interface IHasLegs {int NumberOfLegs { get; } }internal interface IHasName {string Name { get; set; } }class Person : IHasLegs, IHasName {public int NumberOfLegs => 2;public string Name { get; set; }public Person(string name){Name = name;} }class Program {static void ShowLegs(IHasLegs i){Console.WriteLine($"Something has {i.NumberOfLegs} legs");}static void Main(string[] args)...

c# – 当使用实体框架作为数据访问层时,如何实现业务逻辑层?

说我有3层 第1层:WPF项目(包含:xaml,viewmodels,mvvm框架) 第2层:业务逻辑层(包含:普通c#类) 第3层:实体框架(包含:存储库/数据访问类) 当你不想将你的DAL(第3层)暴露给视图(第1层)时你如何很好地实现业务逻辑层?我很难在BLL对象和DAL实体之间来回放置值. 你能帮忙吗?解决方法:不要将所有DAL暴露给视图层,只需在所有层之间交换域对象(EF对象).结构可能类似于以下内容: >表示层——– ^> BLL ————————— |数据对象>...

C#在接口及其实现者类中使用泛型【代码】

我想创建一个适用于所有IComparable类型的接口.例如public interface SortAlgorithm<T> where T : System.IComparable<T> {List<T> Sort(List<T> input); }我希望它的实现者也是通用的,并且我在界面中提供了相同的规范.像下面的例子public class InsertionSort<T> : SortAlgorithm<T>这是我这样做的目的.我希望我的所有排序算法都适用于实现IComparable接口的所有类型.并且希望在接口中提供T是IComparable的子类的规范.但是当我这样...

c# – 具有接口约束和类实现接口的泛型类【代码】

最近我实现了一个Trie的数据结构,并决定节点可以存储不同类型的数据或者它的实现方式不同,所以我去了Node< T>.然后当我进入构建Trie的算法时,我意识到它需要更多关于Node的知识,所以我限制泛型类使用INode接口.这允许更大的灵活性,但在泛型类的上下文中感觉错误. 通用类对实现接口的类具有不同的用例.例如,List< T> – 算法可以在不依赖于相关抽象集的情况下工作.实现接口的类可能需要多态/ DI,但接口将更加专业化. 在什么情况下其...

c# – ToArrayAsync()抛出“源IQueryable未实现IAsyncEnumerable”【代码】

我在ASP.NET Core上有一个MVC项目,我的问题与IQueryable和异步相关.我在IQueryable< T>中编写了以下搜索方法:private IQueryable<InternalOrderInfo> WhereSearchTokens(IQueryable<InternalOrderInfo> query, SearchToken[] searchTokens) {if (searchTokens.Length == 0){return query;}var results = new List<InternalOrderInfo>();foreach (var searchToken in searchTokens){//search logic, intermediate results are bein...