C# 面试题(三)
1、下面代码的输出结果是什么
using System; class A { public A() { PrintFields(); } public virtual void PrintFields(){} } class B:A { int x=1; int y; public B() { y=-1; } public override void PrintFields() { Console.WriteLine("x={0},y={1}",x,y); }
答:X=1,Y=0;x=1 y = -1
2、有一个字符串 "I am a good man",设计一个函数,返回 "man good a am I"。
static string Reverse() { string s = "I am a good man"; string[] arr = s.Split(' '); string res = ""; for (int i = arr.Length - 1; i >= 0; i--) { res += arr[i]; if (i > 0) res += " "; } return res; }
3、C# 九九乘法表算法实现
static void Mu() { string t = string.Empty; for (int i = 1; i < 10; i++) { for (int j = 1; j <= i; j++) { t = string.Format("{0}*{1}={2} ", j, i, (j * i)); Console.Write(t); //if (j * i < 82) // Console.Write(" "); if (i == j) Console.Write("\n"); } } }
4、代码实现猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。
namespace DelegateEvent { public delegate void SubEventHandler(); public abstract class Subject { public event SubEventHandler SubEvent; protected void FireAway() //开火, 抽象类可以有具体方法。 { if (this.SubEvent != null) this.SubEvent(); } } public class Cat:Subject { public void Cry() { Console.WriteLine("cat cryed.") this.FireAway(); } } public abstract class Observer //定义一个观察者的抽象类,这样的类有一点就是观察谁,这个谁肯定是一个类,这里指猫 { public Observer(Subject sub) //抽象类也可以定义构造函数 { sub.SubEvent +=new SubEventHandler(Respose); //注册猫叫事件(表达有点含糊),当此事件触发的时候,老鼠会做出回应 } public abstract void Respose(); } //定义一个观察者,老鼠 public class Mouse : Observer { private string name; public Mouse(string name, Subject sub) //定义构造函数,并初始化父类 : base(sub) { this.name = name; } public override void Respose() { Console.WriteLine(name+" attempt to escape!"); } } //定义一个观察者,主人 public class Master : Observer { public Master(Subject sub) : base(sub) { } public override void Respose() { Console.WriteLine("host waken"); } } class Program { static void Main(string[] args) { Cat cat = new Cat(); Mouse mouse1 = new Mouse("mouse1", cat); //在对象初始化的时候,已经注册了对猫叫的响应事件 Mouse mouse2 = new Mouse("mouse2",cat); Master master = new Master(cat); cat.Cry(); Console.Read(); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2017-05-08 备忘录模式实例1
2017-05-08 加密程序-注册方法实现
2017-05-08 web项目的发布