【c#-将类的列表传递给方法,并将抽象基类的列表作为参数】教程文章相关的互联网学习教程文章

c# – INotifyPropertyChanged的OnPropertyChanged参数【代码】

我进入MVVM并偶然发现了两个版本调用此MWE中显??示的OnPropertyChanged函数:public class SampleModel : INotifyPropertyChanged {private string _name;public string Name{get { return _name; }set{if (value == _name) return;_name = value;// Version 1OnPropertyChanged();// Version 2OnPropertyChanged(nameof(Name));}}#region INotifyPropertyChanged memberspublic event PropertyChangedEventHandler PropertyChange...

c# – 为什么ref参数不能像out参数一样被忽略?【代码】

是否有一个特定的原因,为什么C#7带来内联参数而不是参考? 以下内容适用于C#7:int.TryParse("123", out _);但这是无效的:public void Foo(ref int x) { }Foo(ref _); // error我没有看到为什么相同的逻辑不能应用于ref参数的原因.解决方法:原因很简单:因为您不允许将未初始化的变量传递给ref参数.情况一直如此,C#7中新的语法糖并没有改变这种情况. 注意:int i; MyOutParameterMethod(out i); // allowedint j; MyRefParameter...

func上的C#可选参数丢失泛型类型推断【代码】

我有琐碎的通用枚举解析方法:public static T Parse<T>(string value) => (T)Parse(typeof(T), value, false);用法是:public IEnumerable<DocumentTypesEnum> FileTypeEnums => FileTypes.Split(',').Select(Extensions.StringEnumerator.Parse<DocumentTypesEnum>);以上编译很好. 将可选参数添加到Parse< T>:public static T Parse<T>(string value, bool ignoreCase = false) => (T)Parse(typeof(T), value, ignoreCase);现在...

c# – 为什么String.Split()不允许将单个字符串作为参数【代码】

我正在尝试为家庭自动化解决方案(homeseer)编写我的第一个c#脚本.我有其他问题要解决以下代码,但简单的行:String[] parm = line.Split(",");导致错误:Type ‘string’ does not contain a definition for `Split’ and noextension method ‘Split’ of type ‘string’ could be found (are youmissing a using directive or an assembly reference?)我将针对其他问题发布另一个问题using System; using System.Collections.Gen...

如何使用可选参数从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# – 输出所有命令行参数【代码】

我正在研究一个控制台应用程序,它接收了很长的参数列表.出于调试目的,我需要打印传递给输出文件的参数.现在,我使用以下代码来连接命令行参数.static void Main(string[] args) {string Params = string.Empty;foreach(string arg in args){Params += arg + ",";} }有没有更好的方法来实现这一目标?解决方法:你可以使用这段代码String.Join(", ", Environment.GetCommandLineArgs())

c# – 如何使用运行时参数轻松管理适配器和/或装饰器?【代码】

我将举一个非常简单的例子.class Implementation: IMyInterface {string mArg;public Implementation(string arg){mArg = arg;}public DoStuff(object param){// snip} }class Decorator: IMyInterface {IMyInterface mWrapped;public Decorator(IMyInterface wrapped){mWrapped = wrapped;}public DoStuff(object param){var result = mWrapped.DoStuff(param);// snipreturn result;} }现在,我需要实现构造函数的参数,我在运行时...

c# – 指定的参数太多【代码】

我正在开发一个应用程序,它允许人们列出电影以及编辑,插入和删除它们.在db我有三个表(Movie,Genre和MovieGenre),这个问题与向电影添加一个类型有关(通过添加到MovieGenre表,它保存了电影类型的轨迹). 下面是相关代码,以及抛出的异常.我只是无法弄清楚为什么我收到此错误消息,因为我使用正确数量的参数,因为我可以在调用sproc时在c#代码中看到它. 有人能看出这里的问题是什么吗? 例外:过程或函数usp_InsertMovieGenre指定了太多参...

c# – OleDb Excel:没有给出一个或多个必需参数的值【代码】

我试图从excel文件中获取一些数据,问题是我将第一行读作数据,所以我决定将我的connectionString中的HDR更改为是,但之后我的程序最终得到了主题标题中指定的异常. 这是我的代码和我的查询: 致电:DataTable dt = Utils.queryXlsFile(Qry, dbConnection);queryXlsFile方法:public static DataTable queryXlsFile(String query, OleDbConnection dbConnection) {OleDbDataAdapter dbCommand = new OleDbDataAdapter(query, dbConnec...

C# – 确定参数是否已通过的方法失败【代码】

我正在使用c#创建一个Windows窗体应用程序,如果传递包含该文件路径的参数,则可以在启动时打开该文件. 但是,它无法准确确定参数是否已通过.即使我没有传递任何参数,它仍然会尝试打开一个文件. 这是我的代码:string[] args = Environment.GetCommandLineArgs(); if (args == null || args.Length == 0) {} else {try{ListData ld = new LmReader.LmReader().readLmList(args[0]);listItemsList.Items.Clear();foreach (ListItemList...

c# – 将Type参数转换为T.【代码】

我对如何将一个类型参数传递给一个参数的方法感到有点困惑.public class MyNamespaceXmlFormatter : XmlMediaTypeFormatter {public override Task WriteToStreamAsync(Type type, object value, Stream writeStream, HttpContent content, TransportContext transportContext, System.Threading.CancellationToken cancellationToken){XElement xmloutput = XElementSerialiser.ToXElement<type>(value);...........我尝试了以下,...

c# – 将foreach循环中发生的条件作为参数传递【代码】

我有一种方法可以将列表中某些学生对象的数据添加到数据表中.该方法检查studentList中满足特定条件的学生,然后将它们添加到数据表中. 我想在参数中指定条件,但是当我尝试将s.status作为我的第二个字符串参数传递时,我(可以理解)得到一个错误,因为在foreach循环开始之前s不会发挥作用.有没有办法让这项工作?public void AddDataTableRows(DataTable datatable, string field, string condition){foreach (student s in studentList...

c# – String泛型参数是否被视为值类型或引用类型?

从MSDN Generics in the Run Time文件我注意到:When a generic type is first constructed with a value type as a parameter, the runtime creates a specialized generic type with the supplied parameter or parameters substituted in the appropriate locations in the MSIL. Specialized generic types are created one time for each unique value type that is used as a parameter.和Generics work somewhat differentl...

C#:将派生类作为一个通用参数传递【代码】

我最近开始学习更多关于事件/代理以及类扩展的知识. 我想通过向Windows Form控件添加一个名为SetDraggable()的扩展方法,将我学到的东西付诸实践,然后使用MouseDown和MouseMove事件来移动控件. 一切正常,除了它只适用于特定控件 – 在我的情况下,一个按钮.namespace Form_Extensions {public static class Extensions{private static System.Windows.Forms.Button StubButton;private static Point MouseDownLocation;public static...

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

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