【c# – 用于使用起始值声明属性的简单语法】教程文章相关的互联网学习教程文章

C#7对属性的Ref返回不编译【代码】

参见英文答案 > Why doesn’t returning by ref work for elements of collections? 2个在学习c#7时,我碰巧偶然发现Ref返回.下面的GetSingle方法在我学到的时候起作用,它在外面给我一个引用.但GetIns方法抛出了编译时错误.不幸的是,我无法解释为什么以及这些GetIns如何与GetSingle不同.有人可以解释一下吗? 错误:表达式不能在此上下文中使用,因为它可能不是通过引用返回的. 请注意,其中一条评...

c# – 验证器忽略MaxLength属性【代码】

问题:我试图手动验证一些c#对象,并且Validator忽略与字符串长度相关的验证. 测试用例:扩展this example使用[Required]属性,我也想验证字符串不是太长,如下所示.public class Recipe {//[Required]public string Name { get; set; }[MaxLength(1)] public string difficulty = "a_string_that_is_too_long"; }public static void Main(string[] args) {var recipe = new Recipe();var context = new ValidationContext(recipe, se...

c# – ASP.NET核心MVC属性路由继承【代码】

我以前总是在我的MVC应用程序中使用这种方法[Route("admin")] public class AdminController : Controller {}[Route("products")] public class ProductsAdminController :AdminController { [Route("list")]public IActionResult Index(){...} }用于索引操作的Url.RouteUrl()返回/ admin / products / list / 现在在.NET Core中它忽略了基类路由属性,结果只是/ products / list /这是.NET Core的新功能吗?是否有任何设置,以便系统...

c# – 将自定义依赖项属性添加到XAML中的控制模板【代码】

经过一段时间的休息后,我已经设法进一步使用了我的只读复选框,现在我以理想的优雅形式拥有了我想要的功能.问题是我已经使用了一些黑客来使它工作,虽然这不是一个灾难,它会更好地做到这一点. 回顾一下:我想要一个常规查看的复选框,在单击它时不会自我检查,而是单击事件会触发后台工作程序,稍后会导致更新变量.此变量绑定到checkbox.ischecked,然后使用新值更新. 我想在这里使用基于这个想法的控件模板: A read-only CheckBox in C...

c# – ASP.NET MVC绑定方法而不是参数的属性【代码】

我知道你可以这样做:public ActionResult DoSomething([Bind(Exclude = "CreationDate")] Item item) { /*...*/ }但是,我发现您还可以在方法的顶部附加该Bind属性,例如[Bind(Exclude = "CreationDate")] public ActionResult DoSomething(Item item) { /*...*/ }这有完全相同的效果吗?如果绑定到多个参数怎么办?解决方法:第二种形式是我更常见的形式.据我所知,两种形式完全相同. Exclude选项采用以逗号分隔的属性列表.排除列表...

c# – 编辑视图中的不可编辑的ViewModel属性【代码】

在我的ASP.NET MVC2应用程序中,我有一个名为UserCreateViewModel的ViewModel类. 在这个类中,有许多属性直接映射到LINQ-to-SQL类,称为User.我正在使用AutoMapper来执行此映射,它工作正常. 在UserController的Create操作中,我收到一个部分完整的UserCreateViewModel,其中包含有关OpenId身份验证的信息. 这是UserCreateViewModel的定义:public class UserCreateViewModel {public string OpenIdClaimedIdentifier { get; set; }publi...

使用C#比较嵌套对象属性【代码】

我有一个比较两个对象的方法,并返回一个不同的所有属性名称的列表.public static IList<string> GetDifferingProperties(object source, object target) {var sourceType = source.GetType();var sourceProperties = sourceType.GetProperties();var targetType = target.GetType();var targetProperties = targetType.GetProperties();var properties = (from s in sourcePropertiesfrom t in targetPropertieswhere s.Name == t....

c# – System.Runtime.Serialization.Json.DataContractJsonSerializer.WriteObject在序列化时忽略NonSerialized属性【代码】

如果我尝试使用System.Runtime.Serialization.Json.DataContractJsonSerializer序列化以下ClassToSerialize类的对象[DataContract,Serializable] public class ClassToSerialize {[NonSerialized] private bool _mf;public bool IsMf{ get { return _mf};set{ _mf = value;} }[DataMember]public char PrimaryExc { get; set; } }public class TestClass {ClassToSerialize obj = new ClassToSerialize{PrimaryExchange = ...

C# 使用表达式树复制属性值,转化为指定类型 ExpressionTree CopyProperties

之前使用的是网上的一个表达式树版本,使用时需要显示写出参数及返回值的类型 Tin TOut, 略显麻烦 public static class TransExpV2<TIn, TOut>{private static readonly Func<TIn, TOut> Func = GetFunc();private static Func<TIn, TOut> GetFunc(){Type inType = typeof(TIn);Type outType = typeof(TOut);ParameterExpression parameterExpression = Expression.Parameter(inType, "inParam");List<MemberBinding> memberBin...

C#在命中属性之前运行一段代码【代码】

我有一个方法,我想始终在属性的get访问器之前运行.如果不在get {}中手动运行方法,这是否可行?这是我想要工作的一个例子.private string _someString;private string _someOtherString;public string SomeString{get { return _someString; }}public string SomeOtherString{get { return _someOtherString; }}public void AlwaysRun(){// Code to always run here.}解决方法:这在.NET框架中本身是不可能的. 但它可以使用称为AOP,面...

如何在C#类中拥有父属性?【代码】

例如,在以下类中,我需要在Cupboard和Shelf中拥有Parent属性.我该怎么做?public class Room {public List<Cupboard> Cupboards { get; set; } }public class Cupboard {public Room Parent {get{}}public List<Shelf> Shelves { get; set; } }public class Shelf {}解决方法:您可以使用自动实现的属性:public class Cupboard {public Room Parent { get; set; } }您还可以选择将setter设为私有,并在构造函数中进行设置.public cla...

用C#对象属性值替换html模板中的项目【代码】

1:我有一个.html文件,其中包含一些带有一些占位符标记的标记.<html xmlns="http://www.w3.org/1999/xhtml"> <head><title></title> </head> <body>First Name : <FIRSTNAME/> <br />Last Name: <LASTNAME/> </body> </html>2:我有一个Class来保存从db返回的数据public class Person {public Person(){}public string FirstName { get; set; }public string LastName { get; set; } }3:PersonInfo.aspx我写出这个.html,占位符...

c# – 有没有办法通过委托直接调用属性设置器?

我正在使用Windows窗体,并且很多时候(我理解)必须围绕UI组件的属性编写包装函数,以便可以通过调用它们的包装器从另一个线程设置它们(属性). 但是,有一件事并没有让我休息.属性的设置者实际上不是自己运作的吗?如果它们是,可以在它们周围形成一个委托而不求助于编写包装器,然后从另一个线程调用委托吗?解决方法:是的,这是可能的.使用PropertyInfo.GetSetMethod函数检索属性的set访问器,然后创建一个委托来调用它. 或者甚至更简单,...

c# – NuGet – T4文件属性在安装后有所不同【代码】

我正在构建一个NuGet包,它将一些T4模板提供到CodeTemplates目录中.当我安装NuGet包时,T4模板都将Custom Tool属性设置为“TextTemplatingFileGenerator”.这不对. 我知道我可以通过更改我的注册表来禁用它,这样就不会以这种方式添加新的T4模板,但由于这是一个NuGet包,所以这不是一个选项. 我已经研究过PowerShell,但是我很难理解为实现目标我会做些什么. 我查看了.csproj文件xml,发现了这个:<None Include="CodeTemplates\AddContr...

Visual Basic默认属性与C#属性【代码】

我正在将Visual Basic.Net代码转换为我的项目中的C#.但我对如何将Visual Basic默认属性转换为C#有一些疑问.我的第一个选择是索引器.让我们想象一下Visual Basic中的下一个代码Public Class MyClass Dim MyHash as HashtablePublic sub New()MyHash = New Hashtable()MyHash.Add("e1",1)MyHash.Add("e2",2)MyHash.Add("e3",3) End SubDefaul Propery MyDefProp(ByVal key as string) as ObjectGetReturn MyHash(key)End GetSet(ByVa...