【c#-有条件地传递命名参数】教程文章相关的互联网学习教程文章

c# – 具有相同名称和参数但具有不同结果和约束的多个泛型方法【代码】

我目前正在重写自定义RPC机制的一部分(不能被其他东西替换,所以不建议;-)).调用的参数收集在内部使用字典的自定义集合中.有一个方法T Get< T>(string)来检索命名参数.对于可选参数,我想添加一个返回参数的TryGet< T>(字符串)方法,如果它不存在则添加null,以便调用代码可以使用null合并运算符提供默认值.当然,对于值类型,这不起作用,但我可以使用T?相反,这就是我想要的. 所以我拥有的是:public class Arguments {// lots of other...

c# – 无参数捕获和其他捕获之间的区别【代码】

我有一段代码//Code 1 Code 2 Code 3 try try try { { {//Exp occur //Exp occur //Exp occur } } } catch (Exception e) catch (Ex...

c# – OO样式参数与类型参数【代码】

假设您有以下两种方法: 1号:void AddPerson(Person person) {// Validate personif(person.Name != null && IsValidDate(person.BirthDate)DB.AddPersonToDatabase(person); }2号:void AddPerson(string name, DateTime birthDate) {Person p = new Person(name, birthDate);DB.AddPersonToDatabase(person); }这两种方法中哪一种最好?我知道第一个更正确OO-wise,但我觉得第二个更可读,并且你不必确保对象是有效的,因为参数确保...

c# – 我可以使用通用约束来启用参数化构造函数吗?【代码】

我有这样的功能:public List<T> SelectAll<T>() where T : DatabaseObject, new() {List<T> retVal = new List<T>();String command = "Select * from " + GetType().Name;MySqlCommand cmd = DatabaseRunner.GetCommand(command);MySqlDataReader reader = cmd.ExecuteReader();while (reader.Read()){T newObj = new T(reader);}return retVal; }您可以看到当我尝试创建新的T对象时,我将MySqlDataReader对象传递给构造函数.如何...

‘base’作为C#中的函数参数名称【代码】

我目前正在遵循Microsoft的命名准则,因此在函数参数命名中使用camelCase.现在假设我想使用签名public string WriteNumberInBase (int number, int base)在某些方法中,编译器抱怨参数名称只是因为’base’是一个保留关键字…有什么方法可以让’base’被接受作为参数名称?解决方法:试试这个:public string WriteNumberInBase (int number, int @base) // ^ // ...

c# – MvvmCross – 缺少已启用链接所有程序集的viewmodels参数【代码】

为了减少应用程序大小,我在我的Xamarin.iOS应用程序上启用了“链接所有程序集”选项.不幸的是,当我启动应用程序时,传递简单的视图模型参数不起作用.在应用程序输出上,我可以看到以下警告: mvx:Diagnostic:1.93用于调用ViewModel的缺少参数 – 缺少参数isLaunchedForTheFirstTime – 假设为null – 这可能对值类型失败! mvx:错误:1.94无法从字符串解析BoolParser参数isLaunchedForTheFirstTime 我不知道要添加什么来LinkerP...

C# 参数可选特性

1.定义方法 public string Welcome(string name, int a = 0 ,int b = 1) {return HttpUtility.HtmlEncode("Hello a is: " + a + ", b is: " + b); } 此方法a和b参数的传参方式就是参数可选特性, 即调用welcome方法不对a,b参数传值时,a参数默认值为0,b参数默认值为1. 2.方法调用 Welcome("test",b:666); a参数可以不传,由此可见参数可选特性使得方法调用更加灵活方便。

c# – 参数:(必需,可选)vs(必需,必需,可选)【代码】

我已经定义了以下方法:void Write(string fileContent, string fileName, string container = StorageBlobContainers.ProfilePictures)编译的代码没有问题,所以我编写了代码来执行它(来自不同的文件):string json = JsonConvert.SerializeXNode(node); FileProcessor.Write(json, "productscontainer");但似乎由于某种原因它什么都没做.经过几分钟的努力才能理解这个问题,我终于找到了它.在同一个类的某个地方,已经有一个像这样定...

c# – 发布文件以及web api的一些参数【代码】

我有Web api控制器Uploads Controller,它有PostUpload方法将数据存储到数据库. 现在我试图将文件和一些参数发布到那个web api但是所有的尝试都失败了,就像传递数组列表,json对象一样,我们不能将文件和参数发布到web api?var request = new RestRequest("Uploads", Method.POST); request.RequestFormat = DataFormat.Json;request.AddHeader("Content-Type", "application/json"); request.AddFile("filename", Server.MapPath("/...

c# – 仅在传递整数时使用命名参数【代码】

目前,我正在尝试使用带有dapper的SAP Sybase SQL Anywhere 12处理命名参数.以下代码正确运行:public class Test {public int Str1{get;set;}public string Str2{get;set;} }class Program {static void Main(string[] args){using (SAConnection connection = new SAConnection("...")){connection.Open();Test test = connection.Query<Test>("SELECT :Str1 as Str1, :Str2 as Str2",new Test() { Str1 = 35, Str2 = "42" }).Fir...

c# – 复杂类型作为web api操作中的可选参数【代码】

我需要在’Web API控制器操作’中创建一个复杂的类型参数,这样我的空值操作过滤器可以通过检查参数的属性IsOptional来忽略它.我收到这个错误:Optional parameter ‘errorCode’ is not supported by ‘FormatterParameterBinding’.我有一个像这样的控制器:[Route("api/v1/Temp/{number}/{errorCode?}/{value?}")] [HttpGet] public IHttpActionResult Temp(int number, ErrorDetail errorCode = null, string value = null) {re...

c# – 路由参数在WebApi中不起作用【代码】

下面是WebAPI.[RoutePrefix("api/customer")] public class CustomerController : ApiController {[Route("{id:int:min(1)}/")]public HttpResponseMessage Get(int id){//my stuff} }如果我传递任何小于1的值(比如说0或-1).它返回响应体为NUll,HttpStatusCode = 200 预期的响应是:HttpStatus Code = 404. 但是,如果我修改我的路线如下.[RoutePrefix("api/customer")] public class CustomerController : ApiController {[Route("...

c# – .NET核心Web项目 – 使用命令行参数【代码】

我想通过命令行参数将DbConnectionString传递给我的.NET Core Web API应用程序. 看完之后: .NET core Pass Commandline Args to Startup.cs from Program.cs 我的Program.cs看起来像:public static void Main(string[] args) {var config = new ConfigurationBuilder().AddCommandLine(args).Build();var host = new WebHostBuilder() .UseKestrel().UseConfiguration(config).UseContentRoot(Directory.GetCurrentDirectory())....

c# – 使用KeyValuePairs列表作为参数的Ajax调用操作【代码】

我希望简单地对期望Key和Value对List的方法进行AJAX调用,但我不知道如何做到这一点.我尝试了以下方法: 服务器方法:UpdateBranches(List<KeyValuePair<string, string>> brancheItems)要发送的数据:var brancheItems = [];businessActivities.forEach(f => brancheItems.push({Key: f.sbiCode,Value: f.sbiCodeDescription})这似乎给了我一个具有键和值属性的对象数组. (网络选项卡显示它),但它没有用.我还试图用一个属性创建一...

c# – 如何使用.NET Core依赖注入在运行时解析服务并注入其他构造函数参数?【代码】

我有一个用例,我想使用.NET Core依赖注入创建存储库实例,但需要在运行时更改其中一个构造函数参数.确切地说,应该在运行时决定的参数是“数据库连接”,它将指向由调用者决定的一个或另一个数据库.顺便说一下,这种类型没有在DI容器中注册,但所有其他类型都是. 调用者将使用存储库工厂类型来创建具有所需连接的存储库. 它看起来像这样:class ARepository : IARepository {public ARepository(IService1 svc1, IService2 svc2, IConne...