C#面试题目含参考答案(三)

前言

        面试是应聘一个工作岗位的环节,来考察一个人的工作能力与综合素质。在应聘C#程序员或与C#相关岗位时,我们都会被问到一些与.NET、C#、数据库、业务知识或编程思想等问题。本文列举一些问题及提供参考答案,题目(三)。

题目

61、C#语言中Property与Attribute的区别

参考答案: Property称属性 是用来对类、结构的成员变量进行读取或赋值。通常是一对get与set;Attribute称特性是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。

示例:

// 此处定义类的Name称属性(Property)
public class Cars
{/// <summary>/// /// </summary>public string Name{get;set;}
}// 此处在类上声明性标签Serializable 称特性(Attribute)
[Serializable]
public class Cars
{/// <summary>/// /// </summary>public string Name{get;set;}
}

62、什么是强类型系统

参考答案:每个变量和常量都有一个类型,必须先声明才能使用。C# 是一种强类型语言。

63、调用WebService的常用方法有哪些

参考答案:1、通过引用wsdl文件的方式直接生成WebService调用类。2、指定的WebService地址的WSDL,生成一个代理类,通过反射动态调用里面的方法。

64、能用foreach遍历访问的对象需要实现什么接口或声明什么方法的类型

参考答案:需实现IEnumerable接口或声明GetEnumerator方法的类型。

65、C#语言有哪些主要的数据类型?它们之间是怎样进行相互转换的?

参考答案:值类型(整数类型、字符类型、浮点类型、布尔类型、结构类型和枚举类型)和引用类型(类、接口、委托、数组、字符串等)。它们可通过隐式类型转换或显式类型转换。

66、C#语言有几种表达式?根据什么确定表达式的类型?

参考答案:在C#中,基本表达式有5种:算术表达式、关系表达式、逻辑表达式、条件表达式和赋值表达式.表达式的类型由运算符的类型决定。

67、名空间有什么作用

参考答案:命名空间既是.NET提供系统资源的分层组织方式,也是分层组织程序的方式。命名空间有两种:一种是系统命名空间,一种是用户自定义命名空间。

68、根据get和set访问器是否存在,属性可以分成哪几种类型?

参考答案:如果只设置get访问器,则为只读属性,若只设置set访问器,则为可写属性,两个访问器均存在时,为既可读又可写属性。

69、接口声明主要由几部分组成,各部分的作用是什么?

参考答案:接口声明由访问修饰符、interface 关键字以及接口名。其中:接口的访问修饰符有new、public、protected、internal和private,各个修饰符都代表不同的访问权限。new修饰符仅允许在类中定义的接口内使用,它指定接口隐藏同名的继承成员。public、protected、private和internal修饰符用于控制接口的可访问性,与前面所介绍的意义相同。接口名称通常以I开头。要实现该接口,必须有类继承该接口。

70、概述三层结构体系

参考答案:三层结构体系,就是在客户端和数据库之间加入了一个中间层,三层是指逻辑上的三层,而不是物理上的三层。中间层通常包括业务逻辑层、数据访问层、数据对象模型层。常说三层结构体系就是将整个业务应用划分为:1、表现层(展现给用户的界面);2、业务逻辑层(按功能对业务逻辑进行处理后进行数据层操作);3、数据访问层(直接操作数据库,对数据的增添改查等)。

71、C#中的重载是什么

参考答案:重载是指在同一个作用域内,定义多个名称相同但参数个数、类型或顺序不同的方法。

72、DataGridView.DataSource 可以连接什么的数据源

参考答案:DataTabe、DataView、DataSet、DataViewManager等任何实现IListSource或IList接口的数据源。

73、C# 中 extern的作用是什么

参考答案:extern 是C#语言中的修饰符,用于声明在外部实现的方法。常见用法是在使用 Interop 服务调入非托管代码时与 DllImport 特性一起使用。extern 与 DllImport 特性一起使用时必须将方法声明为 static。

/// <summary>
/// 设置窗口区域
/// </summary>
/// <param name="hwnd">设置区域的窗口句柄</param>
/// <param name="hRgn">设置的区域</param>
/// <param name="bRedraw">是否立即重画窗口</param>
/// <returns></returns>
[DllImport("user32.dll")]
public static extern int SetWindowRgn(IntPtr hwnd, int hRgn, Boolean bRedraw);

74、C# 中 params 的作用是什么

参考答案:params 是C#语言中的关键字,用于指定采用数目可变的参数的方法参数。方法参数只能出现一次并且在其后不能再有参数定义。

/// <summary>
/// 
/// </summary>
/// <param name="listItem"></param>
/// <returns></returns>
public List<string> GetList(params string[] listItem)
{List<string> list = new List<string>();for (int i = 0; i < listItem.Length; i++){list.Add(listItem[i]);}return list;
}

75、私有成员会被继承吗

参考答案:继承后子类可以拥有父类所有的成员,也包括私有(private)成员,但子类访问不了。

76、C#中的数组有没有Length()这个方法?string是否有这个方法?

参考答案:数组和字符串都有 Length 属性,而不是Length() 方法。

int[] intArray = new int[]{1, 2, 3, 4, 5};
// 获取数组长度
int length = intArray.Length;string sayContent = “Hello World”;
// 获取字符长度
length = sayContent.Length;

77、概述ORM的原理

参考答案:ORM是对象关系映射,用于实现数据库中的关系数据和内存中的对象之间的映射。其原理是利用反射配置将对象和数据库表映射。

78、编程遍历窗体上所有TextBox控件并将其Text属性赋值为string.Empty?

参考答案


foreach(System.Windows.Forms.Control control in this.Controls)
{if (control is System.Windows.Forms.TextBox){System.Windows.Forms.TextBox textBox =(System.Windows.Forms.TextBox)control;textBox.Text = String.Empty;}
}

79、abstract 可以和 virtual 或 override 一起使用吗?

参考答案:abstract 修饰符不可以和 static、virtual 、 override 修饰符一起使用

80、什么是泛型

参考答案:泛型是指在编写类或方法时延迟指定数据类型,直到实际使用时才进行指定,达到同一个类或方法处理不同数据的技术。

81、命名空间System.Data的作用

参考答案:System.Data提供对 ADO.NET 体系结构的类的访问权限。

82、object是C#的关键字吗?请指出C#中有哪些类型关键字,如int、float。

参考答案:object是C#的关键字,类型关键字有object、int、uint、long、ulong、short、ushort、byte、sbyte、char、float、double、decimal、bool。

83、指出C#中是否有下列关键字?virtual、sealed、abstract、import、as、in、goto、final、Const、signed、String

参考答案:没有的关键字:import、final、Const(const才是C#的关键字)、signed、String(string 才是C#的关键字)

84、指出delegate(委托)、enum、int[]、string 分别属于引用类型还是值类型

参考答案:delegate引用类型、enum值类型、int[]引用类型、string引用类型。

85、如何在C#中实现继承?C#支持多重继承吗?

参考答案:在类名后加上一个冒号,再加上基类的名称。C#不支持多重继承。可以用接口来实现。

//基类
public class Animal
{   
}
// 派生类
public class Dog:Animal
{ 
}

86、能够将非静态的方法覆写成静态方法吗?

参考答案:不能,覆写方法的签名必须与被覆写方法的签名保持一致,除了将virtual改为override。

87、virtual、sealed、override和abstract的区别

参考答案:virtual是声明虚方法的关键字,方法可以被重写;sealed是密封类的关键字, sealed的类不可被继承;override重写基类的方法;abstract声明抽象类或方法的关键字,抽象方法不提供实现,由子类实现,抽象类不可实例化。

88、C#启动线程是用Run()还是Start()

参考答案:Start是Thread 类启动线程的方法;而Run是Tasks 类启动任务的方法,

Thread thread = new Thread(ThreadExeMethod);
thread.Start();
/// <summary>
/// 
/// </summary>
static void ThreadExeMethod()
{Console.WriteLine("线程调用方法");
}

89、两个对象值相同x.Equals(y)==true,但却可有不同的Hashcode,这句话对不对?

参考答案:不对,它们的Hashcode是相同的。


string x = "Hello";
string y = "Hello";if (x.Equals(y)) 
{Console.WriteLine(string.Format("x的Hascode={0}",x.GetHashCode()));Console.WriteLine(string.Format("y的Hascode={0}", y.GetHashCode()));
}输出:
x的Hascode=-327378614
y的Hascode=-327378614

90、软件开发过程一般有几个阶段?

参考答案:软件开发过程一般可分为:可行性研究、需求分析、概要设计、详细设计、实现、测试、使用与维护。

小结

        以上是30个C#面试题目,后续继续列举一些问题及提供参考答案,敬请关注后续内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/5775.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ROS2专栏(三) | 理解ROS2的动作

​ 1. 创建一个动作 目标&#xff1a; 在ROS 2软件包中定义一个动作。 1.1 新建包 设置一个 workspace 并创建一个名为 action_tutorials_interfaces 的包&#xff1a; mkdir -p ros2_ws/src #you can reuse existing workspace with this naming convention cd ros2_ws/s…

[1673]jsp在线考试管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 在线考试管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…

2024-05-01 区块链-比特币-相关文档

摘要: 2024-05-01 区块链-比特币-文档-记录 比特币: https://github.com/bitcoin/bitcoin https://bitcoincore.org/ https://bitcoin.org/ https://github.com/bitcoin-dot-org/developer.bitcoin.org https://developer.bitcoin.org/ 简介 《Bitcoin Developer Guide》中文…

C语言什么是指向函数的指针?

一、问题 指针可以指向普通数值、数组&#xff0c;还可以指向指针&#xff0c;那么可以指向函数吗&#xff1f;答案是可以&#xff0c; 那么它是什么样的呢&#xff1f; 二、解答 ⼀个函数在编译时被分配⼀个⼊⼜地址&#xff0c;这个地址就称为函数的指针。所以&#xff0c;可…

LeetCode 213 —— 打家劫舍 II

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 此题是 LeetCode 198—— 打家劫舍 的升级版&#xff0c;多了一个首尾相连的设定。 因为首尾相连&#xff0c;所以第一个房屋和最后一个房屋只能偷窃其中一个。 所以&#xff0c;第一种方案就是不偷窃最后一个房…

如何远程访问连接管理器?

远程访问连接管理器是一种方便的工具&#xff0c;可以实现远程访问计算机和网络设备的功能。它使用户能够从任何地点连接到远程计算机&#xff0c;并进行文件传输、桌面共享和远程控制等操作。远程访问连接管理器不仅提供了便利性&#xff0c;还能提高工作效率&#xff0c;并为…

关于观察者模式这一篇就够了

观察者模式的概念 观察者模式&#xff08;Observer Pattern&#xff09;是一种软件设计模式&#xff0c;它定义了一种一对多的依赖关系&#xff0c;让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时&#xff0c;会通知所有依赖它的观察者对象&#xff0…

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《基于分形理论的新型电力系统规划场景生成方法》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

Stylus介绍

在计算机科学和Web开发的语境中&#xff0c;“Stylus”通常指的是一种预处理器&#xff0c;它允许开发者使用更高级的语法来编写CSS&#xff0c;并且提供了一些额外的功能来简化和增强CSS的编写过程。Stylus可以编译成普通的CSS&#xff0c;以便浏览器可以解析和应用样式。 St…

一觉醒来 AI科技圈发生的大小事儿 05月01日

⏩OpenAI获《金融时报》内容授权&#xff1a;可训练模型和实时调用 OpenAI与英国《金融时报》达成战略合作伙伴关系&#xff0c;通过将《金融时报》的新闻内容集成到ChatGPT模型中&#xff0c;提升模型的实用性和新闻内容的可访问性。ChatGPT的用户现在能够访问到《金融时报》…

分类规则挖掘(二)

目录 三、决策树分类方法&#xff08;一&#xff09;决策树生成框架&#xff08;二&#xff09;ID3分类方法&#xff08;三&#xff09;决策树的剪枝&#xff08;四&#xff09;C4.5算法 三、决策树分类方法 决策树 (Decision Tree) 是从一组无次序、无规则&#xff0c;但有类别…

审计师能力与专长数据集(2014-2022年)

01、数据介绍 审计师是专门从事审计工作的人员&#xff0c;他们对企业、政府机关、金融机构等组织进行独立的、客观的、合法的审计&#xff0c;以评估这些组织的财务状况、经营绩效和风险水平。审计师通过收集和评估证据&#xff0c;以确定被审计单位的财务报表是否公允、合法…

中国发布首个汽车大模型标准

&#x1f989; AI新闻 &#x1f680; 中国发布首个汽车大模型标准 摘要&#xff1a;中国信息通信研究院于4月28日发布了国内首个汽车大模型标准&#xff0c;标志着汽车行业正式迈向“人工智能&#xff0b;”时代。该标准包含三个核心能力域&#xff1a;场景丰富度、能力支持度…

区块链 | IPFS:CID

&#x1f98a;原文&#xff1a;Anatomy of a CID &#x1f98a;写在前面&#xff1a;本文属于搬运博客&#xff0c;自己留存学习。 1 CID 在分布式网络中与其他节点交换数据时&#xff0c;我们依赖于内容寻址&#xff08;而不是中心化网络的位置寻址&#xff09;来安全地定位…

『项目整理』易CAR通项目说明文档-我的第一款APP

『项目整理』易CAR通项目说明文档-我的第一款APP 项目介绍功能介绍技术栈介绍实现效果如何运行备注 项目介绍 易CAR通项目是我的第一个Android项目。是一款结合了AR技术的模仿懂车帝的看车软件。因为是初学&#xff0c;所示实现的效果差强人意&#xff0c;很多的功能界面只实现…

Git知识点汇总表格总结

Git应该是现在各个做开发公司使用最广泛的版本管理工具了&#xff0c;还有一些公司可能用的SVN&#xff0c;不过总体来说&#xff0c;Git绝对是主流&#xff0c;SVN是集中式版本管理&#xff0c;使用起来相对Git更简单&#xff0c;不过功能相对Git也略显简略&#xff0c;Git的优…

ICode国际青少年编程竞赛- Python-1级训练场-基础训练1

ICode国际青少年编程竞赛- Python-1级训练场-基础训练1 1、 Dev.step(4)2、 Dev.step(-4) Dev.step(8)3、 Dev.turnLeft() Dev.step(4)4、 Dev.step(3) Dev.turnLeft() Dev.step(-1) Dev.step(4)5、 Dev.step(-1) Dev.step(3) Dev.step(-2) Dev.turnLeft() Dev.step(…

Java_从入门到JavaEE_08

一、Eclipse开发工具的介绍 Eclipse工具简绍 Eclipse 是著名的跨平台的自由集成开发环境&#xff08;IDE&#xff09;。最初主要用来 Java 语言开发&#xff0c;但是目前亦有人通过插件使其作为其他计算机语言比如 C 和 Python 的开发工具。 下载与安装 下载&#xff1a; Ecli…

羊大师:羊奶奥秘孩子健康新选择

羊大师&#xff1a;羊奶奥秘孩子健康新选择 羊奶&#xff0c;这个古老而珍贵的营养源&#xff0c;近年来越来越受到家长们的关注。它不仅富含各种营养成分&#xff0c;而且具有独特的消化吸收优势&#xff0c;成为孩子们健康成长的新选择。 羊奶的脂肪球颗粒直径小&#xff0c…

手撕spring框架(3)

手撕spring框架&#xff08;3&#xff09; 相关系列 手撕spring框架&#xff08;1&#xff09; 手撕spring框架&#xff08;2&#xff09; InitializingBean 接口详解 什么是 InitializingBean 接口&#xff1f; InitializingBean 接口是 Spring 框架中的一个接口&#xff0c…