我们的想法是对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,
));
}
}
};
?>
。
代码生成一个枚举列表,其中包含找到的匹配项。
然后它继续扫描输入值以找到所有被屏蔽的项目(如前所述的逐位操作)匹配。
如果找到匹配项,则会将枚举案例添加到返回列表中。
我想知道这是一个好的或坏的实现以及如何使它更好,它按预期执行但我觉得有优化的空间。