目录
十、定义类成员
类名规则:Pascal;
关键字
public、private、internal、protected、protected internal
const和static的区别?
const的值在初始化时确定,无法改变。
static的值至少还能通过静态函数进行编译。
字段Field
初始化的那部分。
字段的关键字:readonly、static、const
命名规则:首小后大、const字段全大
readonly是什么?可以和private一起用吗?
方法Method
命名规则:Pascal;
关键字:virtual、abstract、override、extern
override是什么?
重写基类方法。
属性Property
关键字:virtual、override、abstract
访问器:get{}、set{}
private int myInt;
//myInt属于parameter,Camel规则
pubic int MyIntProperty{
get{
return myInt;
//get块必须有一个返回值属性
}
set{
//用这里的函数来访问myInt,改变myInt的值
}
}
属性是用来做什么的?
派生类隐藏、重写、调用基类的方法
隐藏基类和重写基类的区别?
如果是隐藏基类,方法前加new。在派生类重新赋给基类时,使用基类的代码。
如果是重写基类,关键字部分填override。在派生类重新赋给基类时,使用派生类的代码。
关键字:base、this
https://www.cnblogs.com/yellowcool/p/7908607.html
实现接口
没细看,深入学习,把那个检索的代码重构一下。
#region&#endregion给代码分组(真的可以折叠的那种)
10.6 示例应用程序(随后续不断开发)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace example
{
//为字段提供范围
#region 枚举
public enum CardColor
{
meihua,
fangkuai,
hongxin,
heitao,
}
public enum CardNumber
{
One = 1,
Two,
Three,
Four,
Five,
Six,
Seven,
Eight,
Nine,
Ten,
Jack,
Queen,
King,
}
#endregion
class Example1006 {
public class Card {
//初始化的设置
#region 字段
private CardColor m_CardColor;
private CardNumber m_CardNumber;
#endregion
//利用属性访问私有字段
#region 属性
public CardColor CardColor {
get {
return m_CardColor;
}
}//名字和类型一样就行
public CardNumber CardNumber{
get {
return m_CardNumber;
}
}
#endregion
// 利用方法输出牌面
#region 方法
private Card(CardColor cardColor,CardNumber cardNumber)//显式的创建构造函数
{
m_CardColor = cardColor;
m_CardNumber = cardNumber;
}
public string OutputCard() {//改成接口该怎么改?
return "Card: " + m_CardColor + " with " + m_CardNumber + " .";
}
public override string ToString()//override重写ToString()
{
return "Card: " + m_CardColor + " with " + m_CardNumber + " .";
}
#endregion
}
public class Deck {
#region 字段
private Card[] m_Deck;
#endregion
public Deck() {
//
}
public Card VisitCard(int cardNumber)
{
//
return DirectCard;
}
public void Shuffle()
{
//
}
}
}
}
10.9 练习答案
3.确保忽略所有结果