C# f泛型方法的限制条件
来源:互联网 发布:吴伯凡 知乎 编辑:程序博客网 时间:2024/06/03 08:39
http://mgc.ahau.edu.cn/article.asp?id=616
C#中使用where子句限制泛型方法的泛型类型。
1.要求泛型类型实现一个接口或派生于某个基类;
2.不能定义必须由泛型类型实现的运算符。
TestMethodTTwo.cs:
- using System;
- using System.Collections.Generic;
- namespace Magci.Test.Collections
- {
- //定义接口
- public interface IAccount
- {
- string Name
- {
- get;
- }
- decimal Balance
- {
- get;
- }
- }
- public class Account : IAccount
- {
- private string name;
- public string Name
- {
- get
- {
- return name;
- }
- }
- private decimal balance;
- public decimal Balance
- {
- get
- {
- return balance;
- }
- }
- public Account(string name, decimal balance)
- {
- this.name = name;
- this.balance = balance;
- }
- }
- public class Algorithm
- {
- //声明泛型方法
- public static decimal Total<TAccount>(IEnumerable<TAccount> e)
- //使用where子句限制泛型类型
- where TAccount : IAccount
- {
- decimal total = 0;
- foreach (TAccount a in e)
- {
- total += a.Balance;
- }
- return total;
- }
- }
- public class TestMethodTTwo
- {
- public static void Main()
- {
- List<Account> accounts = new List<Account>();
- accounts.Add(new Account("Magci", 9999.99m));
- accounts.Add(new Account("Haha", 1241.33m));
- accounts.Add(new Account("Heihei", 1551.2m));
- accounts.Add(new Account("Kevin", 2643m));
- //调用泛型方法
- decimal total = Algorithm.Total(accounts);
- Console.WriteLine("Total : {0:C}", total);
- }
- }
- }
- C# f泛型方法的限制条件
- C#泛型限制
- Qt限制文本框变化输入条件的方法
- 关于在Android中限制EditText输入条件的方法
- C#中使用where子句限制泛型方法的泛型类型
- C#中部分方法的各种限制
- C# textBox限制输入的方法
- C#中的条件方法
- 连接查询的限制条件
- c#远程关机接触xp限制的方法
- ASP.NET C# 限制显示字段长度的方法总结
- c#类和方法的访问级别限制
- c#控制台程序限制用户输入的方法
- 根据限制条件将表b的值迁移值表a(update方法)
- C# 中复制结构变量的条件及方法
- C# 生成SQL文追加Where条件的方法
- UI设计的条件的限制
- c#的条件判断
- Android之PopupWindow
- 常用位操作小技巧
- 如何在PreferenceActivity中加载普通控件及Preference
- quartz常见问题
- Java Web开发构想
- C# f泛型方法的限制条件
- utf8转gbk出现问号的分析,浅谈perl对二进制的处理
- Jquery 隐藏列
- perl CGI模块安装
- C#入门经典第十二章
- Delphi TClientDataSet的使用技巧
- 未来路
- C#入门经典第十一章
- Android 通用获取Ip的方法(判断手机是否联网的方法)!!!