【总结C#获取当前路径的7种方法】教程文章相关的互联网学习教程文章

C# A类派生类强转基类IL居然还是可以调用派生类中方法的例子【代码】【图】

大家都知道在C#中,如果B类继承自A类,如果一个对象是B类型的但是转换为A类型之后,这个对象是无法在调用属于B类型的方法的,如下例子: 基类A:public class A { }派生类B:public class B : A {public void Test(){Console.WriteLine("Hello World!");} }如果我们这样写:A a = new B(); a.Test();我们会发现编译器编译不能通过,有如下的错误: 最近看了一下《C# 从现象到本质》。这本书上写 " 通过IL实现令对象a可以调用B的方...

C#-传递上下文对象的替代方法【代码】

我有一个上下文对象,希望能够从大量差异类中进行访问.我有看起来像的代码Context ctx = new Context(); Section section = new Section(ctx) {Data1 = new SomeData(ctx) { Value = 123 },Data2 = new SomeOtherData(ctx) { Foo = "bar" },SubSection = new Section(ctx) {MoreData = new MoreData(ctx) { Text = "Hello!" }} };但是我真正想要的是看起来像这样的代码:using(Context.New()) {Section section = new Section() {Da...

在C#中使用通用约束返回Task的异步方法【代码】

我已经在a project I’m working on中实现了命令模式.这几乎是当前结构:public class Response {public bool Success { get; private set; }public static Response CreateErrorResponse(){return new Response { Success = false };} }public interface ICommand<T> where T : Response {Task<T> ExecuteAsync(); }public abstract CommandBase : ICommand<T> where T: Response {protected abstract Uri BuildUrl();protected a...

c#-添加和删除文件而不完全重写文件的最有效方法是什么?

例如,如果我想删除文件中间的10个字节或添加10个字节到中间,是否可以在不重写总文件的情况下执行此操作? 我想要一个最快完成此任务的解决方案. 我使用C#,但解决方案也可能在C或C中.解决方法:您必须复制整个文件,省略或插入相关的字节.这是一个操作系统约束;由于文件在磁盘上的布局方式,根本无法支持这种类型的操作(至少对于简单的文件系统(如Unix或Windows使用的文件系统)).

消除C#winforms中的继承“魔术”的最佳方法?【代码】

我正在开发一个由于继承而存在一些缺陷的遗留应用程序,但是我正在努力正确地解决它. 目前,WinForms的结构如下: > BaseForm> ListViewForm:BaseForm> ListViewFormReadOnly:ListViewForm> ListViewFormWithDetailForm:ListViewForm> DetailForm:BaseForm> ConcreteForm:ListViewFormWithDetailForm BaseForm内部有一个方法,称为sth,就像受保护的虚拟void InitializeMyStuff()一样,该方法在继承的实例中将被覆盖. 例如public c...

c#-将具有参数的方法调用保存在列表中并执行【代码】

我对C#还是很陌生,只涉猎于表面.由于我的技能非常有限,所以我已经达到了极限.我想用要调用的方法(包括参数)填充列表,并每秒或在任何其他时间段内调用这些方法. 我应该如何开始?我听说过代表,但是我不确定他们是否是我所需要的或者是否适合我的目的. 抱歉,这是常识.解决方法:正如DeeMac已经说过的那样,这似乎不是初学者或C#所需要的东西,并且最好向您解释为什么您认为需要这样做.但是,按照您说的做,您可以执行以下操作:// Here we...

PInvoke用于复杂的方法调用C#【代码】

我正在使用3. party SDK,它由.dll,.lib和.h文件组成.我正在使用.dll进行PInvoke.和.h文件以查看函数名称和参数. (因此,我没有使用.lib文件). SDK非常复杂,因此事实证明,制作PInvoke包装器是一个挑战.所有功能/结构/枚举均在.h文件中定义. 我尝试包装的函数称为InitBaseComponent,可以调用它,但是它返回一个“ Error In Argument”枚举.所以我的猜测是,编组会产生此问题.因此,问题是:我正在这样做吗? 功能:InitBaseComponent(…)...

c#-如果测试方法失败,如何使构建失败?

我的参考是这个http://msdn.microsoft.com/de-de/library/ms182532.aspx 使用Visual Studio.可以说有一个Solution Project.SuperApp,其中包含一些项目和一个单元测试项目.如果要运行测试,我首先必须构建解决方案,然后从Test-Explorer运行所有测试.即使一项测试失败,该软件也已经构建并可以部署.对我来说这似乎是一个错误. 如果要构建/打包软件组件,请使用Maven等其他工具,首先执行测试.如果一项测试失败,则即使编译该软件组件也不会...

c#-使用WPF Datagrid生成一年的出勤详细信息-最好的方法是什么?【代码】

我正在使用下面的代码来使用wpf DataGrid获取员工的年度出勤仪表板详细信息.实际问题是非常困惑地将数据与wpf datagrid列绑定.我想动态生成所有网格列并将数据绑定到其中我的要求是在列标题中显示日期,每行数据的起始位置应以每月的第一天为基础. 我是否应该像FirstSunday,FirstMonday一样为每个列生成模型,直到每周的第五个星期六才能绑定该列,或者是否有其他方法可以轻松完成此操作?任何帮助将不胜感激. 下面的代码用于生成带有...

c#-Thread.Abort的替代方法,用于cpu时间密集型方法【代码】

我有一个关于multithreading applications的问题.我使用TaskFactory启动CPU时间密集型方法.此方法是对SAP的调用,需要很长时间才能完成.用户应该可以选择取消任务.目前,我正在使用thread.Abort(),但我知道此方法不是取消它的最佳解决方案.有没有人建议替代? 代码示例:Form_LoadAction loadbox = new Form_LoadAction(); Thread threadsapquery = null;Task.Factory.StartNew<>(() => { t = Thread.CurrentThread;Thread.sleep(10...

C#-列表分组-寻找更好的方法【代码】

我有一个类似的清单var x = new List<string>{"A","B","C","D","E","F"};我想像这样将它分为两??半 1一 1-B 2一 2维 3-E 3楼 我的解决办法是var result = new Dictionary<int, List<string>>();var sequence = 1;var groupList = new List<string>();for (var i = 0; i < x.Length ; i++){groupList.Add(x[i]);if ((i + 1)%2 == 0){result.Add(sequence, groupList);groupList = new List<string>();sequence++;}}return result;我...

是否有任何交付的方法需要占用UTC的时区偏移量并在C#中计算时区?

我正在调用一项服务,该服务可以标准化给定地址,并以UTC偏移量(例如:-5:00等)给出结果的时区. C#中是否有一个函数可以获取UTC的时区偏移量并计算时区(三个字符,如CST,EST,PST)?解决方法:否.无论哪种语言,这都是不可能的要求,因为: >许多不同的时区共享相同的偏移量.>时区缩写没有标准.有很多重叠和含糊之处.例如,“ CST”至少有5种我知道的含义.>即使将自己限制在美国,也无法可靠地区分偏移量.例如,-5可以是EST,也可以是CDT. 一...

C#-引发异常的最佳方法【代码】

您是否知道以下引发异常的更好方法(更漂亮)?public long GetPlaylistId(long songInPlaylistId) {var songInPlaylist = service.GetById(songInPlaylistId);return songInPlaylist.With(x => x.Playlist).ReturnValueOrException(x => x.Id, new ArgumentException("Bad argument 'songInPlaylistId'")); }单声道扩展方法:public static TResult With<TInput, TResult>(this TInput obj, Func<TInput, TResult> evaluator)where ...

c#-复制ConcurrentQueue的线程安全方法【代码】

基本上我想做到这一点:private ConcurrentQueue<FormData> _formsData;private void SaveForms() {var serializer = new DataContractSerializer(_formsData.GetType());serializer.WriteObject(fileStream, _formsData); }但是我认为将ConcurrentQueue作为对象参数传递不是线程安全的.因此,我需要先以安全的方式将整个队列复制到另一个集合,然后再将此新集合传递给WriteObject. 我发现ConcurrentQueue的CopyTo方法似乎是线程安全...

c#-Autofac-在解析时在.OnActivated方法内传递值【代码】

我解析实例时需要在.OnActivated方法内部传递值builder.RegisterType<MyType>().PropertiesAutowired()..OnActivated(x => { var myValue = //i need to get a value passed when i call Resolve//do stuffs});var myObject = scope.Resolve<MyType>(); //<--to pass a value here这个怎么做?我知道有工厂吗?是否存在一种简单的方法解决方法:您有两种主要情况: 1 /您的值是整个应用程序的静态范围 您可...