视频加载失败

课程

6125 字
约 18 分钟

Ch01

C#程序设计notes·更新于 2026-09-15

Ch01

  • 生成运行.NET应用程序和服务统称的是 .NET框架
  • .NET框架包含两个主要组件,它们是公共语言运行库类库
  • Console.WriteLine("{0:D4}, {1:F4}",d1,d2)输出结果为0010, 123.4560 D为输出十进制整数,不够位数左边补零,F为小数点后固定位数(四舍五入),不指定则默认两位
  • C#是完全面向对象的语言 .NET框架支持C#、C++、VB、python等多种语言 C#程序通过解决方案和项目来进行组织
  • 命名空间类似于不同子目录下文件的划分形式,它是按照功能对类的一种 逻辑 划分,不是物理存储位置上的分类。
  • C#中的根命名空间是System C#的源程序是通过项目进行组织的,使用 解决方案资源管理器 可以将各种不同类型的项目集成到一起,使其成为一个完整的应用程序。

Ch02

  • 下列数据类型中,属于引用类型的是数组 整型 枚举类型 结构

  • ~~enum MyColor:byte{Red=0, Green=254, Blue, Yellow};~~错误的

  • 隐式转换 : 无需显式指定,通常用于安全的类型转换,如从较小类型到较大类型

    显式转换(强制转换): 需要显式指定,通常用于可能导致数据丢失或转换失败的情况

    ~~double d2=123.4567; float f=d2;~~错误的

  • C#中既能退出循环又能跳出switch语句的是break:退出最近的封闭语句(switch,while,do,for,foreach) continue:不再执行continue后面循环块内剩余的语句,直接进行下一次循环(用在while,do,for,foreach内部)

  • 将值类型变量转换成Object类型变量的操作是 装箱将Object类型变量转换成值类型变量的操作是拆箱

Ch03

  • C# 不支持类的多重继承,但支持接口的多重继承,一个类可以实现多个接口。C#中可使用类实现单继承和多继承

  • 自定义类可以是静态类 类的数据成员中,字段和属性是不一样的两种成员 字段可以是静态的,也可以是实例的

  • 字段就是局部变量:false,字段是类中的成员,属于类或对象.

    而局部变量是方法中的局部变量,它们的生命周期和作用范围不同。 构造函数必须都是public的。

  • 字段的访问必须使用类名:false,字段的访问方式取决于字段的访问修饰符。

    如果字段是实例字段(非静态),则必须通过类的实例来访问;如果是静态字段,可以通过类名直接访问。

  • 字段和属性一样,都不占存储空间:false。字段和属性的存储方式不同。字段是实际存储数据的地方

    而属性是对字段的封装(访问器)。属性本身并不直接占用存储空间,除非它们背后有字段。

  • 结构和类的构造相似 结构适合定义轻量级的对象 结构可以从其他结构继承 结构是引用类型

Ch04

  • 面向对象编程的原则中,封装将内部实现细节和外在表现相分离,继承能够简化类的设计。

  • 调用基类的数据成员使用base关键词,表示当前对象的关键字是this

  • 用方法重写来实现多态时,基类方法前面使用virtual关键字,扩充类同名方法前用override关键字声明。

  • 抽象类中至少包含一个抽象成员 接口里面全部都是抽象成员 抽象类和接口一样都不能直接被实例化

    ~~抽象类通常做一个类的基类,接口内的成员只能是方法。~~接口中不仅可以包含方法,还可以包含属性、事件和索引器。

    接口的成员只能声明(不能有实现,除非是 C# 8.0 及以后版本引入的默认实现)

    抽象类可以声明成员并提供部分实现。抽象类中的方法可以有实现,属性、字段等也可以有实现。

  • new关键字的用法:用来创建对象 隐藏基类的数据成员 访问对象 调用基类的构造函数 ->通过base

Ch05

  • 使用Directory类提供的Move方法可以实现文件的重命名操作 GetFiles可以获取某个指定目录下的所有文件的名字
  • 对文件进行操作时,使用Encoding类表示字符编码的类型。
  • File类提供的方法中,可以向文本文件中写入指定的字符串的是WriteAllText方法

Ch06

  • 用Frame控件承载WPF Page时,需要设置该控件的哪个属性指定要导航的页 Source

  • Margin描述4个方向的外边距,顺序为 左、上、右、下

  • 设置WPF窗口的哪个属性可以让一个窗口拥有另外一个窗口 -> Owner

  • 下列WPF控件中,不属于Content内容模型的控件是~~TextBox~~ (属于的是Label Button CheckBox Image)

  • 在WPF应用程序中,要弹出一个窗口,必须先创建该窗口类的实例,再调用该实例提供的方法将其显示出来。

    如要创建“模式”窗口,需调用的方法是ShowDialog()

  • 在关闭WPF窗口之前引发,并且能阻止窗口关闭的事件是Closing

  • WPF页通常使用哪个控件进行承载WPF Page,具体实现时只需设置该控件的Source属性就可以了->Frame

Ch07

  • 布局控件中采用绝对定位布局方式的是 Canvas 唯一
  • ListBox控件的内容模型属于以下哪种内容模型Items
  • Grid控件采用动态定位布局方式 TextBox支持单行和多行内容的显示 GroupBox控件内可以直接添加很多WPF控件 GroupBox 只能包含一个子元素 , 表示一个控件,该控件用于创建具有用户界面 (UI) 内容边框和标题的容器。
  • Text内容模型:TextBox PasswordBox
  • 定义一个区域能够使该区域内的子元素在其上,下,左,右各边缘按水平或垂直方式依次停靠的布局控件是DockPanel

Ch08

  • 在单独XMAL文件中的定义样式,并能够实现重复使用的是资源字典

  • 利用数据模板可以将控件和数据源自动绑定在一起

    如要实现就需要借助Binding类将目标的附加属性和数据源的值绑定在一起。

  • 在Grid内部定义XAML资源时,需要在Grid的Resources属性中进行定义。

  • XMAL资源分为静态资源和动态资源两种,前者是生成项目后属性值不会再变化的资源

    这种资源引用时使用StaticResource标记引用。

Ch09

  • LINQ语句以from子句开头。

  • LINQ语句中,能够实现按某个属性升序或者降序排列的子句是order by

  • 在实体框架中,先创建数据库而后再创建实体数据模型的开发方式是数据库优先

  • LINQ进行查询操作时,数据源的种类可以有哪些:数组 XML文件 数据库 泛型集合

  • 在实体数据上文对象的Database属性调用SqlQuery方法执行sql查询

    调用ExecuteSqlCommand方法执行增、删、改等SQL语句。

FinalExam

  • 下列选项中不属于面向对象编程三大原则的是 抽象 (封装,继承,多态)

  • ~~C#中的虚拟方法不可以是静态方法,但是它可以为private方法。~~C# 中的虚拟方法不能是静态方法,也不能是 private 方法。虚拟方法需要被子类重写,因此必须是可继承的(如 public 或 protected),且不能是静态的。

  • 即使在 try 语句中使用跳转语句(例如 returnbreakcontinue),finally 语句仍然会被执行。finally 语句的目的是确保资源的清理操作始终执行,不受异常或跳转语句的影响。

  • C# 语言采用的是 Unicode 编码,而不是 ASCII 编码。Unicode 可以表示更多的字符集,支持多语言字符,而 ASCII 仅支持英文字符。 一个应用程序必须有一个类包含Main方法。

  • 值类型保存在栈上,引用类型保存在受管制的堆上 值类型保存实际的数据,引用类型保存指向实际数据的地址 栈用于存储局部变量和函数调用的参数,而堆用于存储由 new 操作符创建的对象。

    值类型一般占用较少的内存,因此执行效率较高。引用类型需要分配堆内存,相对较多,且访问时需要间接寻址,因此执行效率较低。

    值类型通常不需要由垃圾回收机制负责回收,因为它们通常保存在栈上,栈内存由系统自动管理。而引用类型需要由垃圾回收机制负责回收,因为它们存储在堆上,堆内存需要手动或者由垃圾回收器管理。

  • 值类型:结构 引用类型:,接口,数组

  • 接口用于定义一组方法签名,它本身不能直接实例化,通常由类实现并创建实例。

    类的实例在内存中分配的是堆内存,类的对象变量存储的是指向堆中实际数据的引用。

    在 C# 中,数组是对象类型,它存储的是对数组数据的引用,而不是直接存储数据本身。

    结构(struct)直接存储数据值,并且通常存储在栈上。结构实例的变量保存的是实际数据,而不是数据的引用。

  • 设A为已定义的类,则下列代码的运行结果为 A a1 = new A(); A a2 = new A(); Console.WriteLine(a1 == a2); False,== 操作符用于比较对象时,默认比较的是对象的引用地址(即对象在内存中的位置),而不是对象的内容。如果希望比较对象的内容是否相等,需要重写类 AEquals 方法并在其中定义如何比较对象内容。

  • 不属于WPF中的事件路由使用的策略的是~~间接~~,(冒泡,隧道,直接)

  • 定义LINQ查询表达式时,可以同时设置select字句和group字句。 在 LINQ 查询表达式中,selectgroup 不能同时使用在同一个查询中。group 用于分组操作,通常与 select 配合使用来选择每个分组的元素,但它们的使用逻辑是分开的。一个查询只能选择是分组查询(使用 group by)还是普通查询(使用 select)的一种方式。

  • WPF应用程序没有Main方法,直接通过App.xaml运行。,App.xaml 中实际上会包含对 Main 方法的调用。

  • WPF控件只能用C#代码来进行创建。 XAML也可以

  • 设置WPF窗口的哪个属性可以实现窗口的关联:Owner

  • 使用实体数据上下文类的对象修改数据库时,不能使用SQL语句进行修改。

  • 直接在元素的开始标记内用特性语法声明的元素样式是内联式

  • 在使用Style定义样式时,使用哪个特性可以指定样式适用的控件类型TargetType

  • 抽象类中所有的成员必须都是抽象成员。 抽象类可以包含抽象方法(没有实现的),也可以包含具体实现的方法。抽象方法没有方法体,需要在派生类中实现,但抽象类本身可以包含已实现的方法。

  • 类的继承可以简化扩充类的设计,最重要的是可以使扩充类继承基类中所有的数据成员。 不能访问基类中的私有成员。如果需要访问数据成员,通常需要使用 protectedpublic 访问修饰符。

  • 调用以下哪个方法打开WPF窗口,可以以模态的形式出现ShowDialog

  • 命名空间是按照功能对类的一种逻辑划分 命名空间可以包含子命名空间 引用命名空间使用using关键字

  • 命名空间下面只能包含类,不能包含枚举类型和结构 还可以包含其他类型,如枚举类型、结构体、委托等

  • 利用哪种WPF事件路由策略,可以在WPF父元素上一次性为子元素注册事件冒泡 事件从事件源元素开始,向父元素传递,直到根元素。在父元素上注册事件时,可以捕获子元素发出的事件。通过冒泡事件,父元素可以一次性为其所有子元素注册事件处理程序.例如,如果你在一个容器(如 StackPanel)上注册事件处理程序,那么当容器中的任何子元素触发该事件时,事件将冒泡到父容器,你可以在父容器上捕获并处理该事件。

  • 下列WPF控件中,内容模型属于Children内容模型的控件是StackPanel

  • 下列赋值语句中,不正确的是float d=3.78;float 类型的变量 d 需要一个后缀 f 来明确表示它是一个 float 类型的值,而不是 double 类型。3.78 默认是 double 类型

  • WPF的窗口隐藏之后,还可以调用Show方法再次打开。 关闭后的则不能

  • 下列哪项不能用来承载WPF页~~Grid~~ (可以的有:Window Frame NavigationWindow)

  • 静态资源是指用下述那种标记扩展引用的资源{StaticResource keyName}

  • 定义委托需要的关键字是delegate

  • 获取ListBox控件当前选中项索引的属性是SelectedIndex

  • 设置Image控件的哪个属性可以指定图像的拉伸方式Stretch

  • 若要实现多继承,不能直接用类来实现,但是可以借助接口来实现。

  • 扩充类中,可以在方法前添加new修饰符隐藏基类中同名的方法。

  • 需要用户明确指定数据类型的转换是显式转换 系统默认的、不需要加以声明就可以进行的数据转换是隐式转换

  • 类中使用get语句和set语句进行定义的数据成员是属性

  • WPF布局控件中,能够实现按比例动态调整分配空间的控件是Grid

  • 已知语句序列int x=3;Object o=x;该语句中出现的将值类型转换为Object类型的操作是装箱

  • 枚举成员的默认值是基于从零开始的整数递增。

Profile Image of the Author
Sonder
好想要技术
这是公告标题
这只是一个公告
分类
标签
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.7
文章许可
CC BY-NC-SA 4.0
文章目录