Assignment Help logo
在线聊天

Loading...

Score %0 (0 correct0 incorrect20 unanswered)

Q1. 在以下哪些情况下,接口比抽象类更好?

  • 当你需要定义对象类型的特征时,请使用接口。当你需要定义对象类型的能力时,请使用抽象类。
  • 接口是旧版本C#的遗留,可以与较新的抽象类特性互换。
  • 当你需要一个能够与类无关的能力和数据列表时,请使用接口。当你需要某种对象类型共享特征时,请使用抽象类。
  • 在定义任何复杂对象时,应同时使用接口和抽象类。

Q2. 委托的哪个语句是正确的?

  • 委托不受当前版本的C#支持
  • 它们不能用作回调。
  • 只能将变量作为参数传递给委托。
  • 它们可以链接在一起。

官方文档: 委托

Q3. 哪个选项最好地定义了C#的异步编程模型?

  • 响应式
  • 继承回调
  • 基于任务
  • 基于回调

官方文档: 任务异步编程模型正确的答案 --> var contacts = new List<string>();

Q4. 你如何确定一个类是否具有特定的属性?

  • .
var type = typeof(SomeType);
var attribute = type.GetCustomAttribute<SomeAttribute>();
  • .
var typeof(MyPresentationModel).Should().BeDecoratedWith<SomeAttribute>();
  • .
Attribute.GetCustomAttribute, typeof(SubControllerActionToViewDataAttribute)
  • .
Attribute.GetCustomAttribute(typeof(ExampleController), typeof(SubControllerActionToViewDataAttribute))
  1. 官方文档: 属性类
  2. 官方文档: Attribute.GetCustomAttribute方法

Q5. ref和out关键字有什么区别?

  • 传递给ref指定参数是输出参数,而ref指定变量可以在不初始化的情况下传递给函数。
  • 传递给ref的变量可以在不初始化的情况下传递给函数,而out指定值是可以在调用方法内部更改的引用值。
  • 传递给out的变量可以在不初始化的情况下传递给函数,而ref指定的值是可以在调用方法内部更改的引用值。
  • 传递给ref指定参数是输出参数,而out指定变量可以在不初始化的情况下传递给函数。
  1. 官方文档: ref
  2. 官方文档: out参数修饰符

Q6. 你如何在运行时检索类的信息,并创建一个实例?

  • 反射
  • 序列化
  • 抽象化
  • 依赖注入

官方文档: 反射

Q7. 这段代码是什么例子?

    private static object objA;
    private static object objB;

    private static void performTaskA()
    {
        lock (objB)
        {
            Thread.Sleep(1000);
            lock (objA) { }
        }
    }

    private static void PerformTaskB()
    {
        lock (objA)
        {
            lock (objB) { }
        }
    }
  • 使用多线程的私有类
  • 多线程编码
  • 线程管理不当
  • 潜在的死锁

官方文档: 死锁和竞争条件

Q8. 匿名类型和常规数据类型有什么区别?

  • 匿名类型没有类型名称
  • 匿名类型只能是静态的
  • 匿名类型只能在结构中使用
  • 匿名类型不适用于LINQ。

官方文档: 匿名类型

Q9. 何时使用字典而不是数组类型在你的应用程序中?

  • 当你需要一个锯齿状的集合结构时
  • 当你需要存储相同类型的值时
  • 当你需要存储键值对而不是单个值时
  • 当你需要一个有序的、可搜索的列表时

官方文档: Dictionary<TKey,TValue> 类

Q10. a.Equals(b)和a == b有什么区别?

  • .Equals方法比较引用标识,而==比较内容。
  • .Equals方法比较原始值,而==比较所有值。
  • .Equals方法比较内容,而==比较引用标识。
  • .Equals方法比较引用类型,而==比较原始值类型
  1. 官方文档: Object.Equals
  2. c-sharpcorner: 等号(==) vs .Equals()

Q11. 哪个选项最好地描述了死锁的情况?

  • 当你试图在同一个类或结构中同时实例化两个对象时
  • 当你尝试在用户事件注册后执行一个动作
  • 当同时执行的指令正在等待彼此完成以前执行
  • 当你尝试在多个线程上同时执行一系列事件

官方文档: 死锁和竞争条件

Q12. async关键字是如何工作的?

  • 它允许访问C# API中的异步方法
  • 它允许在线程池和静态类中进行同步处理。
  • 它允许在方法中使用await关键字
  • 它允许访问C# API中的同步方法

官方文档: async

Q13. C#中的对象是什么?

  • 一个类或结构,包括其变量和函数
  • 只能在编译时创建的原始数据类型
  • 只能与抽象类一起使用的值类型
  • 包括字段、属性和/或方法的类或结构的实例

官方文档: 对象

Q14. 哪个代码片段声明了一个名为userData的匿名类型?

  • var<<!---->T> userData = new <<!---->T> { name = "John", age = 32 };
  • var userData = new { name = "John", age = 32 };
  • AType userData = new AType { name = "John", age = 32 };
  • Anonymous<T> userData = new Anonymous<T> { name = "John", age = 32 };

官方文档: 匿名类型

Q15. 当执行此方法时将返回什么?

public void userInput(string charParameters) { }

  • 一个布尔值
  • 一个字符串变量
  • 一个整数

官方文档: void

Q16. 在这个示例中,员工姓名将以什么顺序打印到控制台?

string[] employees = { "Joe", "Bob", "Carol", "Alice", "Will" };

IEnumerable<string> employeeQuery = from person in employees
                                    orderby person
                                    select person;

foreach(string employee in employeeQuery)
{
    Console.WriteLine(employee);
}
  • 升序
  • 无序
  • 降序
  • 先进先出

dotnetpattern: LINQ OrderBy Operator

Q17. Lambda表达式通常与以下哪项一起使用?

  • 命名空间
  • LINQ
  • 类型别名
  • 程序集

官方文档: 语言集成查询(LINQ)概述

Q18. 单行和多行注释的正确格式是什么?

  • /_/ - 单行 /_ - 多行
  • // 多行 /_ 单行 _/
  • //\* 多行 / 单行
  • // 单行 /* 多行 */

w3schools: C# 注释

Q19. 如何使抽象类中的方法可重写?

  • 将其设为public
  • 将其设为static
  • 将其设为private
  • 将其设为virtual
  1. 官方文档: virtual
  2. 官方文档: abstract

Q20. 如何为名为Age的整数属性编写代码,具有getter和setter?

  • public int Age { get - set }
  • public int Age: get set;
  • public int Age (get, set );
  • public int Age { get; set; }

官方文档: 使用属性