.ToString()、Convert.ToString、(string)、as的异同

本文详细介绍了C#中四种将对象转换为字符串的方法:.ToString()、Convert.ToString()、类型强制转换(string)和as操作符。针对每种方法的特点进行了对比分析,特别是对于null值的不同处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1..ToString()
2.Convert.ToString()
3.(string)
4.as

同:都可以把object->string
异:当object为null时,则:
  1..ToString():如果object为null,会抛出NullReferenceException异常
  2.Convert.ToString():不会抛出NullReferenceException异常,而是返回一个null。
        3.(string):这个跟1,2点是不同的,它是强制转换,要求object必须是string类型的;如不是,就会异常。
        4.as :当object不是string时,返回null而不抛出异常。

《C#编程综合考试题》 满分:150分 考试时间:120分钟 一、单选题(每题4分,共40分) 1、以下哪个方法用于将字符串转换为整数?( A ) A. ToString() B. Parse() C. Convert() D. Cast() 2、以下表达式计算y的结果为?( ) int x = 5; int y = x++ + --x * 2; A. 13 B. 14 C. 15 D. 17 3、SQL中,下列哪个用于确保列的值不为空?( ) A. DEFAULT B. PRIMARY KEY C. UNIQUE D. NOT NULL 4、try-catch块的作用是?( ) A. 优化性能 B. 处理异常 C. 释放资源 D. 定义变量 5、StringBuilder适用于?( ) A. 频繁字符串拼接 B. 字符串比较 C. 字符串分割 D. 模式匹配 6、以下哪个是值类型?( ) A. string B. class C. int D. Array 7、使用Action委托的前提是?( ) A. 方法有返回值 B. 方法无返回值 C. 方法是静态的 D. 方法是私有的 8、停止Timer的方法是?( ) A. Pause() B. Dispose() C. Stop() D. End() 9、以下哪个方法用于释放非托管资源?( ) A. Finalize() B. Dispose() C. Close() D. Clear() 10、泛型集合List<T>的AddRange方法作用是?( ) A. 删除元素 B. 添加单个元素 C. 添加多个元素 D. 排序 二、多选题(每题4分,共20分) 1、以下属于引用类型的有?( ) A. int B. string C. class对象 D. DateTime 2、下列哪些会导致编译错误?( ) A.int x = 10; object o = (string)x; B.var list = new ArrayList(); list.Add("text"); C.abstract class Animal { public abstract void Eat(); } D. const double PI = 3.14; PI = 3.14159; 3、下列哪些是合法的委托声明?( ) A. delegate void MyDelegate(); B. public event Action MyEvent; C. Func<int, bool> predicate; D. class Delegate{} 4、SQL中,数据库约束类型包括?( ) A. PRIMARY KEY B. FOREIGN KEY C. CHECK D. DEFAULT 5、关于接口(interface),正确的描述有?( ) A. 接口可以包含字段 B. 接口成员默认是public C. 类可实现多个接口 D. 接口可以定义构造函数 三、填空题(每题2分,共20分) 1、声明一个整型数组并初始化为{5, 10, 15}的语句是:__________。 2、数组长度属性是:__________。 3、窗体类继承自__________。 4、分组查询中用于筛选分组结果的关键字是 __________。 5、线程间更新UI的WinForm方法是:__________。 6、终止应用程序的方法:__________。 7、C#中实现多态性的两种方式是__________和__________ 8、C#中所有类型的基类是__________。 9、在C#多线程编程中,__________关键字用于实现线程同步。 10、自定义事件需要使用关键字:__________。 四、判断题(每题2分,共20分) 1、事件可以在类外部直接触发。 2、foreach循环可用于遍历数组和集合。 3、委托可以绑定静态方法和实例方法。 4、using语句可自动调用Dispose()方法。 5、值类型默认值为null。 6、可以直接在Task中更新UI控件。 7、ThreadPool适合短期任务。 8、await会阻塞UI线程。 9、窗体也是控件。 10、Task类用于异步编程。 五、解答题(每题10分,共50分) 1、问题:描述List<T>集合与数组的异同,并说明何时选择使用List<T>。 2、问题:使用Timer实现一个简易倒计时器,要求在Label中显示剩余秒数,倒计时结束弹出提示。写出关键代码。 3、问题:设计一个WinForm程序,包含按钮和文本框。点击按钮时,用后台线程计算1到100的和,并将结果显示在文本框中,避免界面卡顿。写出关键代码 4、题目(SQL联合查询):假设有两个数据库表 表一:学生表Students,列名有StudentID(学生ID),StudentName(学生姓名),Class(班级) 表二:成绩表Scoues,列名有ScoreID(成绩ID),StudentID(学生ID),Course(课程名称),Scoure(成绩) 请编写一条SQL语句实现: 查询"计算机科学1班"所有学生的姓名、课程名称和成绩(包含没有成绩记录的学生),结果按学生姓名升序排序。 5、利用冒泡排序或者选择排序讲List<int> ints = new List<int>() { 34, 5, 67, 7, 3, 3234, 34 }; 该集合中的元素重新按照从大到小排序,并输出,写出关键代码。
06-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值