首页 > 代码库 > 笔试题目1124

笔试题目1124

本套试题共8个题,主要考察C#面向对象基础,SQL和ASP.NET MVC基础知识。

 

第1-3题会使用到一个枚举类,其定义如下:

1 public enum QuestionType2 {3     Text = 0,4     MultipleChoice = 15 }

 

第1:请定义一个接口IQuestion,有【标题】和【问题种类】两个属性,其中【问题种类】是只读的枚举类型QuestionType,另外还有一个方法获取该问题的答案(无参,返回字符串)。

 

第2:请定义一个抽象类QuestionBase,实现第一题中的IQuestion接口,其中【问题种类】属性不在该抽象类中实现,而留在该抽象类的子类中实现;获取答案的方法有默认实现,返回字符串“默认答案”。

 

第3:请定义一个TextQuestion类,继承自第2题中的QuestionBase;获取答案的方法返回字符串”文本答案”。再定义一个MultipleChoiceQuestion类,继承自第2题中的QuestionBase;获取答案的方法返回字符串”单选答案”。

 

第4:假设有实体类Product定义如下:

1 public class Product2 {3     public string Name { get; set; }4     public string IsDeleted { get; set; }5 }

现在有一个方法从IQueryable<Product>中获取没有删除的Product列表,该方法实现如下:

1 public List<Product> GetActiveProducts(IQueryable<Product> query)2 {3     return query.WhereNotDeleted().ToList();4 }

请完成扩展方法:WhereNotDeleted

 

第5:假设数据库中有User和Income两张表如下,请仔细分析下方的示例数据,然后写出SQL得到右方的查询结果。

 

第6题:根据第5题的数据结构,有如下两个实体类和查询结果类的定义:

 1 public class User 2 { 3     public int Id { get; set; } 4     public string Name { get; set; } 5 } 6  7 public class Income 8 { 9     public int Id { get; set; }10     public int UserId { get; set; }11     public decimal Amount { get; set; }12     public int Year { get; set; }13     public int Month { get; set; }14 }15 16 public class UserIncomeDto17 {18     public string Name { get; set; }19     public int Year { get; set; }20     public int Month { get; set; }21     public decimal Income { get; set; }22 }

现有一个方法用LINQ的方式得到第5题的查询结果,该方法定义如下:

1 public List<UserIncomeDto> GetUserIncomeDtos(IQueryable<User> users, IQueryable<Income> incomes)2 {3     throw new NotImplementedException();4 } 

请完成该方法的实现。

 

第7:在ASP.NET MVC应用程序中,假设有如下HTML表单:

1 <form action="/admin/mobile/user/login">2     <input type="text" placeholder="username"/>3     <input type="password" placeholder="password"/>4     <input type="submit" value="http://www.mamicode.com/login"/>5 </form>

当该表单同步提交的时候,如何修改以上HTML和路由配置以使该请求进入下方的action中:

1 public class UserController : Controller2 {3     [HttpPost]4     public ActionResult Login(string username, string password)5     {6         throw new NotImplementedException();7     }8 }

 

第8题:请看如下代码:

 1 public class Product 2 { 3     public string Name { get; set; } 4     public string Description { get; set; } 5  6     public void Validate1() 7     { 8         if (string.IsNullOrEmpty(this.Name)) 9         {10             throw new Exception("please enter a name for the product");11         }12         if (string.IsNullOrEmpty(this.Description))13         {14             throw new Exception("product description is required");15         }16     }17 18     public void Validate2()19     {20         this.Require(x => x.Name, "please enter a name for the product");21         this.Require(x => x.Description, "product description is required");22     }23 }

请完成Validate2方法中Require方法的定义和实现,从而使得Validate2与Validate1方法实现同样的效果。

笔试题目1124