zoukankan      html  css  js  c++  java
  • 标记属性

    C#里的属性标签,现在还是不大明白,感觉上像是对某个方法的实现,或者是说有点像扩展方法。

    使用步骤:

    ①自己定义的类继承一个预先会被调用的类

    ②用[] 的方式将消费者与刚自定义出来的这个类挂接起来

    下面用一个WPF小实例说明下:

     1 <Window x:Class="XamlStudyDemo.MainWindow"
     2         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     3         xmlns:local="clr-namespace:XamlStudyDemo"
     4         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     5         Title="MainWindow" Height="350" Width="525">
     6    
     7     <Window.Resources>
     8         <local:MyClass x:Key="demo" Name="老王" Age="29"  Child="小王" />
     9     </Window.Resources>
    10     
    11     
    12     <Grid>
    13     
    14         <Button Width="60" Height="29" Click="Button_Click"></Button>
    15      </Grid>
    16 </Window>

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Windows;
     6 using System.Windows.Controls;
     7 using System.Windows.Data;
     8 using System.Windows.Documents;
     9 using System.Windows.Input;
    10 using System.Windows.Media;
    11 using System.Windows.Media.Imaging;
    12 using System.Windows.Navigation;
    13 using System.Windows.Shapes;
    14 using System.ComponentModel;
    15 
    16 namespace XamlStudyDemo
    17 {
    18     /// <summary>
    19     /// MainWindow.xaml 的交互逻辑
    20     /// </summary>
    21     public partial class MainWindow : Window
    22     {
    23         public MainWindow()
    24         {
    25             InitializeComponent();
    26         }
    27 
    28         private void Button_Click(object sender, RoutedEventArgs e)
    29         {
    30             MyClass demo = this.FindResource("demo"as MyClass;
    31             if (demo!=null)
    32             {
    33                 MessageBox.Show(demo.Child.Name);    
    34             }
    35             
    36         }
    37     }
    38 
    39     /// <summary>
    40     /// 给属性标记   作者:王超
    41     /// </summary>
    42     [TypeConverterAttribute(typeof(CurrConverter))]
    43     public class MyClass
    44     {
    45         public string Name { getset; }
    46         public string Age { getset; }
    47         public MyClass Child { getset; }
    48     }
    49 
    50     /// <summary>
    51     /// 定制类型转换器  作者:王超
    52     /// </summary>
    53     public class CurrConverter : TypeConverter 
    54     {
    55         public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value)
    56         {
    57             string name = value.ToString();
    58             MyClass myclass = new MyClass();
    59             myclass.Name = name;
    60             return myclass;
    61         }
    62     }
    63 
    64 
    65 }
     

     

  • 相关阅读:
    剑指Offer-二维数组中的查找
    我的心灵鸡汤
    生活经验总结与感受
    剑指offer-二叉树按之字形打印
    5月总结与回顾
    一致性Hash原理
    B树和B+树的区别
    Java内存区域模型
    解决Hash冲突的四种方法
    Go Web项目搭建-Gin+GORM连接MySQL数据库
  • 原文地址:https://www.cnblogs.com/takeaction/p/1998108.html
Copyright © 2011-2022 走看看