如何创建用于获取ushort对象中的枚举项的通用方法

时间:2015-11-17 11:47:58

标签: c# generics enums

我们的想法是对ushort中提供的enum collection进行逐位扫描,以便在public List<T> GetEnumItemsFromUshort<T>(ushort input) where T : struct, IComparable, IConvertible, IFormattable { var output = new List<T>(); foreach (T enumValue in Enum.GetValues(typeof(T))) { if ((input & enumValue.ToUInt16(new CultureInfo("en-US"))) == enumValue.ToUInt16(new CultureInfo("en-US"))) { output.Add(enumValue); } } return output; } 内找到查找任何和所有匹配

我开发的代码如下:

struct, IComparable, IConvertible, IFormattable

如您所见,我使用泛型类型来定义返回类型。

我搜索了该网站,发现使用以下enum约束通用类型,使其行为类似于 <form class='form-horizontal' action='includes/news-letter.php' method='POST'> <div class='form-group'> <div class='col-xs-8 col-xs-offset-2'> <label for='' class='control-label'>Email</label> <input type='text' class='form-control input-newsletter' name='newsletterEmail' id='inputPassword' placeholder='someone@somwhere.com'> </div> </div> <div class='form-group'> <div class='col-xs-6 col-xs-offset-4'> <button type='submit' class='btn btn-default btn-newsletter' name='newsletterEmail'>Get News Letter</button> </div> </div> </form> <?php require_once("dbConnection.php"); news_letter(); function news_letter(){ // if(isset($_POST["newsletterEmail"])) if (isset($_POST["newsletterEmail"]) && !empty($_POST["newsletterEmail"])){ // print_r($_POST); echo "IS SET"; $newsletterEmail = $_POST['newsletterEmail']; echo $newsletterEmail; if ($newsletterEmail==''){ echo "<h6 class='alert alert-danger'>Please fill in field.</h6><br>"; }else{ $query = "INSERT INTO newsletterEmail "; $query .= "(newsletterEmail)"; $query .= "VALUES (:newsletterEmail)"; $ps = $db->prepare($query); $ps->execute(array( "newsletterEmail" => $newsletterEmail, )); } } }; ?>

代码生成一个枚举列表,其中包含找到的匹配项。

然后它继续扫描输入值以找到所有被屏蔽的项目(如前所述的逐位操作)匹配。

如果找到匹配项,则会将枚举案例添加到返回列表中。

我想知道这是一个好的或坏的实现以及如何使它更好,它按预期执行但我觉得有优化的空间。

0 个答案:

没有答案