xml地图|网站地图|网站标签 [设为首页] [加入收藏]
实例级别和类级别的static,委托的介绍
分类:编程

1、添加元素

转自()

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

(1)列表末尾添加

 

namespace 实例级别和类级别的static_构造函数_字段属性的简单介绍
{
    public class B
    {
        public static void a() { }

        public B(int a)//构造函数无返回值,与类名一致.可以无参。
        {             //int a 是形参
        }
        public B()  //无参构造函数
        {
        }

        //public B();//必须声明主体
    }

    public static class A
    {
        public static void abc()//公共的静态方法
        {
        }

        //public void ABC();//不能再静态类中声明实例成员

        ///// <summary>
        ///// 这是错误的
        ///// </summary>
        //public A(){}//静态类不能有实例构造函数
    }

    class Program
    {
        static void Main(string[] args)
        {
            B b = new B(1);//实例级别不用static定义//这是将实参数字1传到int a 形参
            B b1 = new B();

            A.abc();        //  类级别用static
            Console.ReadKey();
        }
    }

    /***************************************************************/
    class C
    {
        private string name;//定义字段
        //定义属性
        public string Name
        {
            get { return name; }//读取
            set { name = value; }//写入
        }

        //把上面的复制到了方法里,结果有错误
        //字段和属性在类内,不在方法内
        public void Cc()
        {
            // private string name;//定义字段
            ////定义属性
            //public string Name
            //{
            //    get { return name; }//读取
            //    set { name = value; }//写入
            //}
        }
    }

}

x=[1,2]

委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递。事件是一种特殊的委托。

x.append(3)

  1.委托的声明

>>>x=[1,2,3]

  (1). delegate

(2)列表中插入

        delegate我们常用到的一种声明

x=[1,2]

   Delegate至少0个参数,至多32个参数,可以无返回值,也可以指定返回值类型。

x.insert(1,5)# 在索引1处添加空间, 并将值5 存储到这个地方

   例:public delegate int MethodtDelegate(int x, int y);表示有两个参数,并返回int型。

>>>x=[1,5,2]

  (2). Action

2、删除元素

       Action是无返回值的泛型委托。

(1)del语句删除

   Action 表示无参,无返回值的委托

x=[1,2,3]

   Action<int,string> 表示有传入参数int,string无返回值的委托

del x[0]#

  Action<int,string,bool> 表示有传入参数int,string,bool无返回值的委托

>>>x=[2,3]

       Action<int,int,int,int> 表示有传入4个int型参数,无返回值的委托

(2)使用pop删除

   Action至少0个参数,至多16个参数,无返回值。

可删除列表中任何一个数,并且还能继续使用它,当pop()里为空时,默认弹出列表末尾的数。

   例:

x=[1,2,3]

        public void Test<T>(Action<T> action,T p)
        {
            action(p);
        }

y=x.pop(1)

    (3). Func

>>>x=[1,3]

   Func是有返回值的泛型委托

>>>y=2

   Func<int> 表示无参,返回值为int的委托

(3)使用remove删除特定的值

   Func<object,string,int> 表示传入参数为object, string 返回值为int的委托

只知道值是多少,但不知道其在列表中的索引时,可用remove()进行删除,但列表中出现多个该数时,只会删除第一个,若想要都删除,则需借助循环。

   Func<object,string,int> 表示传入参数为object, string 返回值为int的委托

x=[1,2,3]0

   Func<T1,T2,,T3,int> 表示传入参数为T1,T2,,T3(泛型)返回值为int的委托

x.remove(3)

   Func至少0个参数,至多16个参数,根据返回值泛型返回。必须有返回值,不可void

>>>x=[1,2]

      例:   

3、组织列表

        public int Test<T1,T2>(Func<T1,T2,int>func,T1 a,T2 b)
        {
            return func(a, b);
        }

(1)用sort对列表进行永久性排序

    (4) .predicate

假设列表中值都是小写的,让列表按首字母顺序排列。

   predicate 是返回bool型的泛型委托

x=['h','c','l','p','a','d','r','g']

   predicate<int> 表示传入参数为int 返回bool的委托

x.sort()

   Predicate有且只有一个参数,返回值固定为bool

print(x)

   例:public delegate bool Predicate<T> (T obj)

>>>['a', 'c', 'd', 'g', 'h', 'l', 'p', 'r']

 2.委托的使用

按照与字母相反的顺序排列,向sort传递reverse=True.

(1).Delegate的使用  

x=['h','c','l','p','a','d','r','g']

 

x.sort(reverse=True)

        public delegate int MethodDelegate(int x, int y);
        private static MethodDelegate method;
        static void Main(string[] args)
        {
            method = new MethodDelegate(Add);
            Console.WriteLine(method(10,20));
            Console.ReadKey();
        }

        private static int Add(int x, int y)
        {
            return x + y;
        }

print(x)

 

本文由澳门新葡亰手机版发布于编程,转载请注明出处:实例级别和类级别的static,委托的介绍

上一篇:没有了 下一篇:的网络适配器操作,抽象类实现求圆的面积
猜你喜欢
热门排行
精彩图文