关于完整解答Leo C.W博客中名为“我们公司的ASP.NET 笔试题,你觉得难度如何”的所有题目,请大家鉴定,不足之处,敬请指教!
第1到3题解答如下:
public enum QuestionType { Text = 0, MultipleChoice = 1 } public interface IQuestion { string Title { get; set; } QuestionType Category { get; }
string GetAnswer(); } public abstract class QuestionBase : IQuestion { public string Title { get; set; } public abstract QuestionType Category { get; } public virtual string GetAnswer() { return "默认答案"; } } public class TextQuestion : QuestionBase { public override QuestionType Category { get { return QuestionType.Text; } } public override string GetAnswer() { return "文本答案"; } } public class MultipleChoiceQuestion : QuestionBase { public override QuestionType Category { get { return QuestionType.MultipleChoice; } } public override string GetAnswer() { return "单选答案"; } }
第4题:
public class Product { public string Name { get; set; } public string IsDeleted { get; set; } } public static class ProductExtension { public static IQueryable<Product> WhereNotDeleted(this IQueryable<Product> query) { return query.Where(p => p.IsDeleted != "是"); } } public class ProductService { public List<Product> GetActiveProducts(IQueryable<Product> query) { return query.WhereNotDeleted().ToList(); } }
第5题:
select T1.Name,T2.[Year],T2.[Month],T2.InCome from [User] as T1 inner join (select UserId,[Year],[Month],COUNT(Amount) AS InCome from InCome group by UserId,[Year],[Month]) as T2 on T1.Id=T2.UserId order by T2.UserId,T2.[Year],T2.[Month]
select T1.Name,T2.[Year],T2.[Month],COUNT(T2.Amount) AS InCome from [User] as T1 inner join InCome as T2 on T1.Id=T2.UserId group by T1.Name,T2.[Year],T2.[Month] order by T1.Name,T2.[Year],T2.[Month]
第6题:
public class User { public int Id { get; set; } public string Name { get; set; } } public class Income { public int Id { get; set; } public int UserId { get; set; } public decimal Amount { get; set; } public int Year { get; set; } public int Month { get; set; } } public class UserIncomeDto { public string Name { get; set; } public int Year { get; set; } public int Month { get; set; } public decimal Income { get; set; } } public class UserIncomeService { public List<UserIncomeDto> GetUserIncomeDtos(IQueryable<User> users, IQueryable<Income> incomes) { var resultList = (from u in users join newic in (from ic in incomes group ic by new { ic.UserId, ic.Year, ic.Month } into gp select new { gp.Key, InCome = gp.Sum(g => g.Amount) }) on u.Id equals newic.Key.UserId orderby newic.Key select new UserIncomeDto() { Name = u.Name, Year = newic.Key.Year, Month = newic.Key.Month, Income = newic.InCome }).ToList(); return resultList; } }
第7题:
改HTML:
<form action="/admin/mobile/user/login" method="POST"> <input type="text" placeholder="username" name="username" /> <input type="password" placeholder="password" name="password" /> <input type="submit" value="login" /> </form>
改路由:
routes.MapRoute("UserLogin", "~/admin/mobile/{controller}/{action}", new { controller = "User", action = "Login" });
第8题:
public class Product1 { public string Name { get; set; } public string Description { get; set; } public void Validate1() { if (string.IsNullOrEmpty(this.Name)) { throw new Exception("please enter a name for the product"); } if (string.IsNullOrEmpty(this.Description)) { throw new Exception("product description is required"); } } public void Validate2() { this.Require(x => x.Name, "please enter a name for the product"); this.Require(x => x.Description, "product description is required"); } public void Require(Expression<Func<Product1, string>> expression, string errorMessage) { Func<Product1, string> func = expression.Compile(); if (string.IsNullOrEmpty(func(this))) { throw new Exception(errorMessage); } } } public class TestProgram { public static void Main() { Product1 product1 = new Product1(); try { product1.Validate2(); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.Read(); } }
更多IT相关的文章,欢迎光临我的个人网站:http://www.zuowenjun.cn/