在模板中讨论枚举类型 -- c# 领域 和 templates 领域 和 .net-4.0 领域 和 enums 领域 相关 的问题

Foreach on enum types in template


0
vote

问题

中文
  enum MyEnum { type1, type2, type3 }  public void MyMethod<T>() { ... }   

如何将FORACH on Enum发射 MyMethod<T>(每枚枚举)(每个enum)?

我尝试用

  foreach (MyEnum type in Enum.GetValues(typeof(MyEnum))) {...}   

但仍然不知道如何使用这个 type 里面的foreach MyMethod<T> 作为t

英文原文
enum MyEnum { type1, type2, type3 }  public void MyMethod<T>() { ... } 

How to make forach on enum to fire MyMethod<T> on every enum?

I try something with

foreach (MyEnum type in Enum.GetValues(typeof(MyEnum))) {...} 

But still don't know how to use this type inside foreach with MyMethod<T> as T

           
 
 

回答列表

4
 
vote
vote
最佳答案
 

是你想要做的吗?

  class Program {     static void Main(string[] args)     {         EnumForEach<MyEnum>(MyMethod);     }      public static void EnumForEach<T>(Action<T> action)     {         if(!typeof(T).IsEnum)             throw new ArgumentException("Generic argument type must be an Enum.");          foreach (T value in Enum.GetValues(typeof(T)))             action(value);     }      public static void MyMethod<T>(T enumValue)     {         Console.WriteLine(enumValue);     } }   

写入控制台:

  my_logger.findCaller = util.find_caller_no_lambda 0  
 

Is this what you are trying to do?

class Program {     static void Main(string[] args)     {         EnumForEach<MyEnum>(MyMethod);     }      public static void EnumForEach<T>(Action<T> action)     {         if(!typeof(T).IsEnum)             throw new ArgumentException("Generic argument type must be an Enum.");          foreach (T value in Enum.GetValues(typeof(T)))             action(value);     }      public static void MyMethod<T>(T enumValue)     {         Console.WriteLine(enumValue);     } } 

Writes to the console:

type1 type2 type3 
 
 
0
 
vote

此代码片段演示如何将所有枚举值显示为消息框中的链式字符串。以同样的方式使方法能够在枚举上执行您想要的内容。

  my_logger.findCaller = util.find_caller_no_lambda 1  
 

this code snippet demonstrates how to show all enum values as a chained string in a message box. In the same way you can make the method perform what you want on the enums.

namespace Whatever {     enum myEnum     {         type1,type2,type3     }      public class myClass<T>     {         public void MyMethod<T>()         {             string s = string.Empty;             foreach (myEnum t in Enum.GetValues(typeof(T)))             {                 s += t.ToString();             }             MessageBox.Show(s);         }     }      public void SomeMethod()     {         Test<myEnum> instance = new Test<myEnum>();         instance.MyMethod<myEnum>(); //wil spam the messagebox with all enums inside     } } 
 
 
0
 
vote

可以做

  my_logger.findCaller = util.find_caller_no_lambda 2  

并称之为

  my_logger.findCaller = util.find_caller_no_lambda 3  
 

You can do

private List<T> MyMethod<T>() {     List<T> lst = new List<T>;      foreach (T type in Enum.GetValues(source.GetType()))     {         lst.Add(type);      }     return lst; } 

and call it as

List<MyEnum> lst = MyMethod<ResearchEnum>(); 
 
 
 
 

相关问题

-1  如何向用户显示文件系统树,能够单击并选择路径? [关闭]  ( How to display a filesystem tree to user be able to click and select a path ) 
很难讲述这里被问到的内容。这个问题含糊不清,模糊,不完整,过于广泛的或修辞,不能以目前的形式合理地回答。有关帮助澄清此问题,以便可以重新开放,访问Help Center 。 ...

14  隐藏的目的是什么(使用“新建”修饰符)接口方法声明?  ( What is the purpose of hiding using the new modifier an interface method dec ) 
可以将界面中的方法声明标记为" new " ,但它有任何"技术" 的感觉,或者只是一种明确说明声明无法覆盖前一个的方法? 例如: interface II1 { new void F(); } interface II2 : II1 { new void F(); } 是有效的(C#4.0...

-1  在这个WPF中使用异步和等待的错误是什么?  ( What is wrong using async and await in this wpf example ) 
我是新的等待异步,我想知道我在这个真实场景中研究了关于这个主题的内容: 我有一个简单的代码,读取比特币价格需要1-2秒,我不想使用等待异步锁定UI,并且如果它正在加载或完成,则仍提供状态: private void button_Click(object sender, RoutedEventArgs e...

4  非零函数参数在函数中变为零  ( Nonzero function argument becomes zero inside function ) 
我正在使用64位Ubuntu 18.04的C#/ Unity项目。我有两个非静态类, ClassA 和 ClassB ,而在实例方法 classA.Foo() 中,有两个调用 public static int 方法 ClassB.Floor(float x) 。在 99887665 调用 998876666 的两个...

14  具有不同参数的超载方法的误解(呼叫含糊)  ( Misunderstanding of net on overloaded methods with different parameters call a ) 
我有一些超载的方法问题,我会尝试制作一个简单的实现。 所以这里是一个类包含以下两种方法: public class MyRepo<TEntity> { public List<TEntity> GetData(Expression<Func<TEntity, Boolean>> expression) ...

1  使用ASP.NET核心,我如何仅获得一种方法所需的依赖项  ( How do i get a dependency needed in one method only using asp net core ) 
我注册了我的 99887663 键入与ASP.NET的内置容器。 我需要一个操作方法中的一个实例。如果我需要它在所有控制器的操作中,那么我将进入构造函数。但我只需要它在一个动作方法中。 所以在动作方法中,我假设我可以做到这一点(未经测试): var service = HttpContext.RequestSer...

-2  为什么C#列表添加对变量的引用?  ( Why does c sharp list add reference to the variable ) 
好的,好的,当我运行这个函数时,我希望获得二进制树的每个级别的Linkendlist引用节点列表。但是此函数返回所有级别的空链接列表。有人能告诉我为什么?我也在Java中添加了解决方案。 facetItems2 java版本。 facetItems3 ...

0  元素必须具有指定的命名空间,如果存在默认命名空间  ( Element must have a namespace specified if there is a default namespace ) 
我正在使用c#消耗一个java webservice,但是当我尝试在特定于某种方法时,我得到了遵循的例外。我能够消耗其他WS的方法。 这是例外 元素必须具有指定的命名空间,如果范围xxxxx中存在默认命名空间 我已经忘了一些东西,但我找不到这个错误的解决方案。我不知道我是否需要更改我的app.config文件。我...

1  根据列表属性删除重复对象  ( Remove duplicate objects based on a list properties ) 
我想基于一些属性拼凑的对象列表。这些性质通过反射和一些条件得到了。我搜索了很多,但找不到任何能够在这个lambda表达式中执行循环的任何代码片段或解决方案。 List<PropertyInfo> propList = ... var distinctList = FullList .GroupBy(uniq...

-1  从使用iTextharp或pdfsharp创建的flatterned pdf中提取文本  ( Extract text from flattenned pdf created with itextsharp or pdfsharp ) 
我想从一定的模板创建的许多PDF中检索一些数据,其中我拥有itextsharp。 那些PDF被扁平化 FormFlattening = true; 我已经尝试过我在互联网上找到的许多不同的aproaches,而且没有工作。我收到错误消息: System.InvalidOperationException...

1  使用实体框架时如何刷新DataGridView?  ( How do you refresh a datagridview when using entity framework ) 
我正在使用以下代码将DataGridView绑定到SQL Server数据库 getPlayerState4 它可以正常工作。如果我尝试更新数据库,则数据库本身更新很好。问题是DataGridView。它没有显示更改。我一直在尝试几个小时只是为了使它工作并失败。 我尝试设置dataSource = null并...

0  WPF,C#,墨水画布,图像 - 如何将Inkcanvas保存在现有图像上并将其另存为新图像?  ( Wpf c ink canvas image how to save inkcanvas on existing image and save it ) 
我试图制作一个控制在哪里可以在图像上画出一些东西,并使用新员工保存该图像。 目前我正在使用墨水画布,因为它真的有用的控制,但我找不到如何用背景图像合并它。此外,我不希望Inkcanvas在图像中的任何地方丢弃,我希望它完全在那个涂装的地方。 问题:如何使用图像合并Inkcanvas? 当前代码: shelfDi...

0  一个模型中同一属性的多个实例  ( Multiple instances of the same property in one model ) 
这是我的模型代码: tasks4 错误消息: tasks5 我不明白为什么MVC不会让我这样做才能开始!为什么模型没有多个属性( tasks8 tasks8 model中 forkswey属性 forkswey属性中选择的多个属性( _id16 ) 这真的很讨厌我。我看了一些关于这个错误的搜索结果...

80  如何在ASP.NET MVC 5中实现自定义身份验证  ( How to implement custom authentication in asp net mvc 5 ) 
我正在开发ASP.NET MVC 5应用程序。我有一个现有的DB,我从中创建了我的ADO.NET实体数据模型。 我有一个表格中的表格,其中包含"用户名" 和"密码" 列,我希望使用它们来在我的webapp中实现身份验证和授权;由于客户的要求,我无法创建任何其他数据库或表格或列,并且我无法使用标准身份验证。 我不需要管...

1  设置目录和子项的权限  ( Set permissions for directory and child items ) 
我的程序复制某些目录,将子目录和文件从服务器到本地计算机。我需要,每个本地用户都可以修改它(编辑/删除/删除/重命名)。但现在它只能做所有者。如何为复制的目录和其子项设置必要的权限? 我尝试这样的代码: String account = Path.Combine(Environment.MachineName, ...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.