zoukankan      html  css  js  c++  java
  • public void Delete(List EntityList) where T : class, new()

    http://xdwangiflytek.iteye.com/blog/1390464 今天熟悉项目时遇到下面这段代码竟不知道什么意思,记录一下:     C#代码  
    1. public T CreateViewModel<T>() where T : BaseViewModel, new()
    2.     {
    3.         T viewModel = new T
    4.         {
    5.             SiteTitle = Settings.SiteTitle,
    6.             SiteDescription = Settings.SiteDescription,
    7.             RootUrl = Settings.RootUrl.TrimEnd('/'),
    8.             AbsolutePath = Settings.AbsolutePath.TrimEnd('\\'),
    9.             MetaKeywords = Settings.MetaKeywords,
    10.             MetaDescription = Settings.MetaDescription,
    11.             IsCurrentUserAuthenticated = IsCurrentUserAuthenticated,
    12.             CurrentUser = CurrentUser,
    13.             ThemeName = ThemeName,
    14.             StyleSheetUrl = GetThemeStyleSheetUrl()
    15.         };
    16.         if (CurrentUser != null)
    17.         {
    18.             viewModel.IsAdmin = CurrentUser.SysRoles.Contains(SysRoles.Administrator);
    19.         }
    20.         else
    21.         {
    22.             viewModel.IsAdmin = false;
    23.         }
    24.         return viewModel;
    25.     }
    public T CreateViewModel<T>() where T : BaseViewModel, new() { T viewModel = new T { SiteTitle = Settings.SiteTitle, SiteDescription = Settings.SiteDescription, RootUrl = Settings.RootUrl.TrimEnd('/'), AbsolutePath = Settings.AbsolutePath.TrimEnd('\\'), MetaKeywords = Settings.MetaKeywords, MetaDescription = Settings.MetaDescription, IsCurrentUserAuthenticated = IsCurrentUserAuthenticated, CurrentUser = CurrentUser, ThemeName = ThemeName, StyleSheetUrl = GetThemeStyleSheetUrl() }; if (CurrentUser != null) { viewModel.IsAdmin = CurrentUser.SysRoles.Contains(SysRoles.Administrator); } else { viewModel.IsAdmin = false; } return viewModel; }   查找后发现这是类型参数约束,.NET支持的类型参数约束有以下五种:   where T : struct | T必须是一个结构类型 where T : class T必须是一个类(class)类型 where T : new() | T必须要有一个无参构造函数 where T : NameOfBaseClass | T必须继承名为NameOfBaseClass的类 where T : NameOfInterface | T必须实现名为NameOfInterface的接口
  • 相关阅读:
    SVN错误:Attempted to lock an already-locked dir
    DecimalFormat 中的 # 与 0 的区别(中文帮助文档中翻译可能是错误的)
    Logger.getLogger和LogFactory.getLog的区别
    在做excel导出时如何将excel直接写在输出流中
    10 -- 深入使用Spring -- 5... 实现任务的自动调度
    8 -- 深入使用Spring -- 8...2 管理Hibernate的SessionFactory
    8 -- 深入使用Spring -- 8...1 Spring提供的DAO支持
    8 -- 深入使用Spring -- 8... Spring整合Hibernate
    8 -- 深入使用Spring -- 7...4 使用自动装配
    8 -- 深入使用Spring -- 7...3 让Spring管理控制器
  • 原文地址:https://www.cnblogs.com/adodo1/p/4328062.html
Copyright © 2011-2022 走看看