C#学习日记day1

关键字:

let关键字

在查询表达式中,存储子表达式的结果有时很有帮助,可在后续子句中使用。 可以通过 let 关键字执行此操作,该关键字创建一个新的范围变量并通过提供的表达式结果初始化该变量。 使用值进行初始化后,范围变量不能用于存储另一个值。 但是,如果范围变量持有可查询类型,则可以查询该变量。

示例

以两种方式使用以下示例 let

  1. 创建一个可以查询其自身的可枚举类型。

  2. 使查询仅调用一次范围变量 word 上的 ToLower。 如果不使用 let,则不得不调用 where 子句中的每个谓词的 ToLower

C#复制

class LetSample1
{
    static void Main()
    {
        string[] strings = 
        {
            "A penny saved is a penny earned.",
            "The early bird catches the worm.",
            "The pen is mightier than the sword." 
        };

        // Split the sentence into an array of words
        // and select those whose first letter is a vowel.
        var earlyBirdQuery =
            from sentence in strings
            let words = sentence.Split(' ')
            from word in words
            let w = word.ToLower()
            where w[0] == 'a' || w[0] == 'e'
                || w[0] == 'i' || w[0] == 'o'
                || w[0] == 'u'
            select word;

        // Execute the query.
        foreach (var v in earlyBirdQuery)
        {
            Console.WriteLine("\"{0}\" starts with a vowel", v);
        }

        // Keep the console window open in debug mode.
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}
/* Output:
    "A" starts with a vowel
    "is" starts with a vowel
    "a" starts with a vowel
    "earned." starts with a vowel
    "early" starts with a vowel
    "is" starts with a vowel
*/

 

abstract关键字

abstract 修饰符指示所修饰的内容缺少实现或未完全实现,可用于类、方法、属性、索引器和事件。一般没有加abstract修饰的即默认为virtual。

一、abstract修饰的类叫抽象类,抽象类中的内容因缺少实现或未完全实现,因此不能生成对象实例,只能用于其他类的基类或做为对象变量声明的类型,且抽象类中的成员则必须通过由该抽象类派生的类来实现,即通过子类继承并覆盖抽象类中的抽象方法。

抽象类的特性

abstract class ShapesClass { abstract public int Area(); }
1、抽象类不能实例化。
2、抽象类可以包含抽象方法和抽象访问器。
3、不能用 sealed(C# 参考)修饰符修改抽象类,这意味着抽象类不能被继承。
4、从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实实现。

二、abstract修饰的方法即抽象方法

public abstract void MyMethod();
抽象方法的特性:
1、抽象方法是隐式的虚方法。
2、只允许在抽象类中使用抽象方法声明。
3、因为抽象方法声明不提供实际的实现,所以没有方法体;方法声明只是以一个分号结束,并且在签名后没有大括号 ({ })。
4、实现由一个重写方法提供,此重写方法是非抽象类的成员。
5、在抽象方法声明中使用 static 或 virtual 修饰符是错误的。

三、abstract修饰的属性即抽象属性。

抽象属性的特性:
1、在静态属性上使用 abstract 修饰符是错误的。
2、在派生类中,通过包括使用 override 修饰符的属性声明,可以重写抽象的继承属性。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值