【类中的C#调用接口方法】教程文章相关的互联网学习教程文章

如何使用可选参数从C#调用VB.NET编写的方法【代码】

我有一个用VB.NET编写的方法.它看起来像这样:Shared Sub SomeMethod(ByVal Id As Guid, Optional ByVal str1 As String = "foo", Optional ByVal str2 As String = "")我想从C#3.0调用这个方法,我希望它使用它的默认参数.我尝试传递System.Reflection.Missing.Value,但我无法将其转换为String. 有没有办法做到这一点? 在此先感谢您的帮助.解决方法:不,在C#3中,您只需传递所有参数. C#4将具有可选和命名参数. 你当然可以创建一些重...

c# – 即使多次调用类,如何使构造函数只被调用一次?

默认情况下,每当调用类时都会调用构造函数,如何在不使用静态构造函数的情况下仅调用一次?解决方法:静态构造函数每个类只调用一次.每次创建类的实例时都会调用实例构造函数.对我来说,目前还不清楚为什么你不能使用静态构造函数.

c# – 我可以从另一个构造函数中调用构造函数(作为常规方法)吗?【代码】

假设我有2个构造函数.public class MyClass {public MyClass(){int id = 0;//Same behaviour}Public MyClass(int id){//Same behaviour} }两种结构都实现相同的行为.唯一的区别是,如果调用第一个构造函数并且id = 0; 我的问题是知道我是否可以调用第二个构造函数,而不是实现相同的行为?如果可能的话,我会这样做吗?解决方法:是的,这称为构造函数链接.它是这样实现的:public class MyClass {public MyClass() : this(0) { }public...

c# – 在C中调用另一个类中的枚举【代码】

如果我们定义两个C类.一个是:abstract class A {public:enum E {F, G, H;} };另一个是B类,那么我如何在A类中使用枚举E呢?假设B和A都在同一名称空间中.我知道在C#中我们可以使用类似的东西:A.E直接,但似乎不是C的情况.解决方法:在C中.和 – >用于访问A对象的此特定实例的成员. ::用于访问A类范围内的东西.这包括静态,枚举和函数指针. 所以在C中,如果你想要枚举值,你想要A :: F或A :: G. 对于枚举类型,你做A :: Eclass A { public...

c# – 多次调用优先级最低的线程【代码】

以下代码5个具有不同优先级的线程正在竞争访问具有8个内核的CPU(Mac OS X 10.8.5,Mono).每个线程增加其计数器.using System; using System.Threading;class PriorityTesting { static long[] counts; static bool finish;static void ThreadFunc(object iThread) { while(true) { if(finish) break; counts[(int)iThread]++; } }static void Main() { counts = new long[5]; Thread[] t = new Thread[5]; for(int i=0; i<t.Length;...

c# – 测量函数调用的CPU周期【代码】

我正在寻找一种方法来测量线程上的函数调用所需的cpu周期. 伪代码示例:void HostFunction() {var startTick = CurrentThread.CurrentTick; //does not existChildFunction();var endTick = CurrentThread.CurrentTick; //does not existvar childFunctionCost = endTick - startTick; }void ChildFunction() {//Do whatever...Thread.Sleep(3000);//Do some more... }我不想使用秒表或其他时间测量,因为它将包括线程正在休眠的...

c# – ASP.NET Core直接在一次调用服务器(动态)中返回excel文件(xlsx)?【代码】

我找到了在服务器上生成excel文件(xlsx)的解决方案.首次调用它会删除文件demo.xlsx(如果存在)并生成新的demo.xlsx. 第一次打电话http://localhost:8000/api/importexport/export 它生成excel文件(xlsx)并发送url进行下载 第二个电话http://localhost:8000/demo.xlsx 下载文件.在Configure方法的Startup类中,您必须添加app.UseStaticFiles(); 这是解决方案的链接http://www.talkingdotnet.com/import-export-xlsx-asp-net-core/ 这个...

c# – 为什么在ConfigurationManager.AppSettings [key]上调用.ToString()?【代码】

我不确定这是否会归结为意见问题,但我一直看到代码中的模式,我不明白. 在所有C#应用程序中,我一直看到表达式:System.Configuration.ConfigurationManager.AppSettings["key"].ToString()很长一段时间以来,我认为这只是我工作的一个怪癖,但我搜索了它,看起来它不仅仅是一些一次性的事情.人们做了相当多的事情,但据我所知,并没有真正谈到它. 例如,这个blog确保在AppSettings上调用.ToString(),this blog也是如此 此外,all the progr...

C#/ C:启动一个应用程序并处理它对系统的I / O调用

我需要启动其他应用程序并处理它的I / O操作.因此,当它尝试读/写文件时,我需要捕获它并更改路径. 它应该是可能的,因为有些程序可以做这样的事情(比如ModOrganizer). 问题是我不想使用文件系统过滤器驱动程序.我不想让我的应用程序的用户安装这样的东西. 正如我所看到的,ModOrganizer通过几种方式完成这项工作,包括proxy.dll,hooks e.t.c.不知何故,它实现了几乎任何程序都可以从它启动的目标,ModOrganizer将处理对特定目录的请求. g...

接收List的C#泛型方法不会为实际类型的T调用重载方法(更喜欢通用类型)【代码】

参见英文答案 > why is this generic not resolved at compile time? 4个我有这个例子C#代码:class Stuff { } // empty classvoid Main() {var list = new List<Stuff> {new Stuff(),new Stuff()};Fun(list); }void Fun<T>(List<T> a) {Debug.Log("called List<T> Fun");foreach (T t in a) {Fun(t);} }void Fun(Stuff a) {Debug.Log("called Stuff Fun"); }void Fun<T>(T a) {Debug.Log("ca...

在类上调用方法或作为参数传递给另一个类? C#【代码】

假设我正在使用’Job’类记录一些数据. (具有各种属性的业务对象列表,用于它的价值.) 我希望能够打印这些数据,所以我想知道是否有更优选的设计来做到这一点.我现在有两个想法 – 在Job本身上调用Print()方法,或者将Job实例传递给某种打印控制器类,例如:job.Print();要么PrintWidget pw = new PrintWidget(job); pw.Print();目前,我无法设想打印此Job类中的数据以外的任何内容.但是,谁知道未来会怎样.考虑到这一点,在我想要打印的任...

C#5.0新增功能02 调用方信息【代码】

连载目录 【已更新最新开发文章,点击查看详细】通过使用调用方信息特性,可获取有关方法的调用方的信息。 可以获取源代码的文件路径、源代码中的行号和调用方的成员名称。 此信息有助于跟踪、调试和创建诊断工具。若要获取此信息,可以使用应用于可选参数的特性,每个特性都具有默认值。 下表列出在 System.Runtime.CompilerServices 命名空间中定义的调用方信息特性:特性描述类型CallerFilePathAttribute 包含调用方的源文件...

c# – 如何重构方法调用看起来一样?【代码】

我有不同的水果类,所有实现相同的界面IFruit:public interface IApple : IFruit{ } public interface IBanana : IFruit{ } public interface ICarrot: IFruit{ } 他们每个人都有自己的抽屉:public class AppleDrawer {public void Draw(IApple apple, Graphics graphics){} }public class BananaDrawer {public void Draw(IBanana banana, Graphics graphics){} }如果我想画一份水果清单,我会做以下事情public void DrawFru...

c# – 如果不使用访问标识符,调用的方法是什么?【代码】

我不知道没有访问标识符的方法是什么.在这个代码块中,我指的是void updateNumTo5方法.private int num = 0;#region public methods public int Get7() {return 7; } #endregion#region private methods private int get6() {return 6; } #endregion#region Unknown name void updateNumTo5() {num = 5; } #endregion解决方法:默认访问修饰符(非标识符)对于方法是私有的.所以这:private void Foo() { }相当于void Foo() { }一般规则...

c# – 在[IsOneWay = true] WCF服务异步和使用客户端上的任务调用同步方法之间是否存在显着差异?【代码】

如果我有一个定义的服务:[ServiceContract(SessionMode = SessionMode.NotAllowed)] public interface IMyService {[OperationContract(IsOneWay = true)][ReceiveContextEnabled(ManualControl = true)]void DoSomething(Message<XElement> message); }我想从我的客户端异步调用它(使用不从svcutil生成的共享契约或添加服务引用)我可以这样做:Task task = Task.Factory.StartNew(() => myService.DoSomething(message));... som...