【c# – Generics / Delegates和带参数的函数】教程文章相关的互联网学习教程文章

c# – String.Format()前导零的十六进制不适用于第二个参数【代码】

我在使用String.Format()时遇到了一个奇怪的问题.我需要格式化带有前导零的两个十六进制数字以填充最多8位数.但是,它仅适用于第一个参数({0:X8}).对于第二个参数({1:X8}),仅打印“X8”. 这是我的代码:public struct DataDirectory {public uint VirtualAddress{get;internal set;}public uint Size{get;internal set;}public override string ToString(){return String.Format("{{VirtualAddress=0x{0:X8},Size=0x{1:X8}}}", Vi...

c# – 自动绑定WebAPI中的另一个参数【代码】

在MVC中,这种事情非常简单.假设我有一个MVC动作签名:public ActionResult SomeAction(InjectedObject a, ConstructedObject b)让我们说来自客户端的请求包含ConstructedObject,我想自动在框架管道中构建InjectedObject. (在这个例子中,InjectedObject有许多动作,甚至可能是所有动作.)我可以创建一个InjectedObjectModelBinder:IModelBinder并在应用程序启动时注册该绑定器的实例. 该绑定器只是构造一个InjectedObject的实例,但我...

c# – 遍历表达式树并提取参数【代码】

我正在写一种绘图工具.我有一个看起来像这样的方法(简化):public void RegisterMapping<TTarget, TSource>(string propertyName, Expression<Func<TSource, object>> memberMap)memberMap是一个表达式,用于定义如何将属性从TSource转换为TTarget.对于业务逻辑,我需要从中提取对TSource属性的所有引用.例如,来自x => x.Customers.Where(c => c.Orders.Any())我想得到客户,来自x => x.FirstName + " " + x.LastNameFirstName和LastN...

c# – 传递默认参数值(不管它是什么)【代码】

//method with an optional parameter public void DoSomething(int a, int b = 42);//caller DoSomething(a, b: default);这可以用C#完成吗? 您可能会说,“如果您不想设置参数,只需在没有它的情况下调用方法”.但后来我在我的代码中得到了这样丑陋的IF://kinda ugly :( if(parameterIsSet)DoSomething(a, myValue); elseDoSomething(a);当我能做到这一点时:DoSomething(a, b: parameterIsSet ? myValue : default);我当然可以这...

c# – 带有out参数的control.invoke【代码】

Winforms,C#,VS2010. 我有一个轮询线程,运行我的应用程序的生命周期. 偶尔它会在我的主表单上调用一个事件.多年来我没有触及代码并且运行成功,但现在我需要在参数列表中添加“out”参数.我在网上搜索过,但我发现的所有主题都是关于反射的,并且试图转换为我的上下文很复杂.我不使用反射. 有人可以帮忙解决这个问题吗?在我读过的反射线程中,人们似乎检查了一些对象数组的out参数结果,我在代码中没有使用它,而且我不知道在哪里得到它...

c# – 尝试保存图像的编译错误.NET Core – 参数类型’System.IO.FileStream’的参数类型无法分配参数类型【代码】

[HttpPost]public async Task<IActionResult> Upload(string memberNumber, IFormFile file){var uploadsFolderPath = Path.Combine(_host.WebRootPath, "uploads");var fileName = Guid.NewGuid() + Path.GetExtension(file.FileName);var filePath = Path.Combine(uploadsFolderPath, fileName);using (var stream = new FileStream(filePath, FileMode.Create)){// Here's the compilation errorawait file.CopyToAsync(stream)...

c# – 使用默认参数而不是默认构造函数调用构造函数【代码】

我想调用一个struct的构造函数,它具有所有参数的默认值.但是当我调用MyRectangle的无参数构造函数时,一个未定义的构造函数被调用.这是为什么?是否有可能没有从我创建的构造函数调用?using System;namespace UebungClasses {class Program{static void Main(string[] args){MyRectangle sixRec = new MyRectangle(3, 2);MyRectangle oneRec = new MyRectangle();Console.WriteLine("area of six: " + sixRec.Area() + " area of o...

c# – 取消订阅泛型类的事件,该泛型类的类型参数在泛型方法中指定【代码】

如何取消订阅泛型类的事件,该泛型类的类型参数在泛型方法中指定如下?public class ListLayoutControl : Control {NotifyCollectionChangedEventHandler handler = null;public void AttachTo<T, U>(T list) where T : INotifyCollectionChanged, ICollection<U>{handler = delegate (object sender, NotifyCollectionChangedEventArgs e){UpdateLayout(list.Count);};list.CollectionChanged += handler;}protected override void...

c# – ReSharper [CanBeNull]和[NotNull]属性可以应用于Action或Func参数吗?【代码】

ReSharper有一套代码注释,可用于显式表达IDE可以使用的代码意图.两个最有用的注释是[CanBeNull]和[NotNull]属性,可以在构造函数,属性和方法上使用,如下所示:[CanBeNull] private Foo DoSomething([NotNull] string text) {// ... }这是一个很长的镜头,但有没有办法可以将这些属性分配给Action或Func参数? 我理解以下代码是非法的(因为type arguments are not a valid target for attributes),但有没有另外一种表达方式?private ...

c# – 如何将可变数量的参数传递给Web服务【代码】

我们正在尝试创建一个我们计划向其传递可变数量变量的Web服务. 可以这样做吗? 基本上不是传递所有可能的参数,我们希望只传递设置值并使用web服务中设置的默认值. 以下是我们要发送的XML的示例,我们将根据所需的返回发送未知数量的函数.<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.x...

在c#中使用参数化查询时引发异常【代码】

我使用Parametarized Query将数据保存到sql server.执行时抛出以下错误.The parameterized query ‘(@CustomerID int,@SerialNo nvarchar(2),@ModelNo nvarchar(2),@Sal’ expects the parameter ‘@CreatedBy’, which was not supplied.这是我的代码.public static bool SaveSales(int custid, string model, string serial, DateTime salesdate, decimal price, string mainservice, string comments, DateTime createddate, st...

c# – 有什么方法可以创建一个可能有不同的调用和返回参数对象的方法?【代码】

我正在使用这种类型的代码:lock (l) {try{var data = db2.Query<CardSetWithWordCount>(qry);return data;}catch (Exception ex){db2.Rollback();Debug.WriteLine(ex);Console.WriteLine(qry);throw;} }或者像这样的另一个例子:lock (l) {try{var data = db2.Query<CardSetDetails>(qry);return data;}catch (Exception ex){db2.Rollback();Debug.WriteLine(ex);Console.WriteLine(qry);throw;} }除了作为db2.Query的返回类型的不...

c# – HttpListenerRequest POST参数在哪里?【代码】

我在MSDN搜索,我无法确定HttpListenerRequest的POST参数在哪里? 任何的想法? * QueryString似乎只有Get参数而不是post解决方法:经过几个小时的搜索(我在发布之前搜索)我意识到我需要发回一个请求来获取表单参数.所以一旦我有HttpListenerRequest填充POST参数不在里面.您需要发送其他请求才能获取它们://POST param if (webRequest.Method == "POST") {StreamReader getPostParam = new StreamReader(request.InputStream, true)...

c# – 使用任意参数创建委托【代码】

我有一个System.Reflection.MethodInfo,并希望有一个方法创建一个代表该方法的委托(最好是一个Func< ...>或一个Action< ...>)给定一个实例来调用它上. 理想情况下,我想要像下面的psuedo代码:public TDelegate GetMethod<TDelegate>(MethodInfo methodToRepresent, object instanceToInvokeOn) {return (TDelegate)((parameters....) => methodToRepresent.Invoke(instanceToInvokeOn, all parameters in an object[])); }其中TDel...

c# – WCF中URI模板中的附加/可选查询字符串参数【代码】

我在WCF中编写了一个简单的REST服务,其中我使用相同的URI模板但使用不同的方法(POST和GET)创建了2个方法.对于GET方法,我还发送其他查询参数,如下所示:[WebInvoke(Method = "POST", UriTemplate = "users")][OperationContract]public bool CreateUserAccount(User user){//do somethingreturn restult;}[WebGet(UriTemplate = "users?userid={userid}&username={userName}")][OperationContract]public User GetUser(int userid, ...