在这篇文章中,我们将带领您了解检查对象是否是Swift中的给定类型的全貌,包括检测对象属性有哪些的相关情况。同时,我们还将为您介绍有关.net–如何检查对象是否是某种类型、c–如何检查类型是否是给定类
在这篇文章中,我们将带领您了解检查对象是否是 Swift 中的给定类型的全貌,包括检测对象属性有哪些的相关情况。同时,我们还将为您介绍有关.net – 如何检查对象是否是某种类型、c – 如何检查类型是否是给定类模板的实例化?、C# – 遍历List中的给定类型元素、flex – 检查对象是否为空的知识,以帮助您更好地理解这个主题。
本文目录一览:- 检查对象是否是 Swift 中的给定类型(检测对象属性有哪些)
- .net – 如何检查对象是否是某种类型
- c – 如何检查类型是否是给定类模板的实例化?
- C# – 遍历List中的给定类型元素
- flex – 检查对象是否为空
检查对象是否是 Swift 中的给定类型(检测对象属性有哪些)
我有一个由AnyObject
. 我想遍历它,并找到所有数组实例的元素。
如何在 Swift 中检查对象是否属于给定类型?
答案1
小编典典如果要检查特定类型,可以执行以下操作:
if let stringArray = obj as? [String] { // obj is a string array. Do something with stringArray}else { // obj is not a string array}
您可以使用“作为!” obj
如果不是类型,那将引发运行时错误[String]
let stringArray = obj as! [String]
您还可以一次检查一个元素:
let items : [Any] = ["Hello", "World"]for obj in items { if let str = obj as? String { // obj is a String. Do something with str } else { // obj is not a String }}
.net – 如何检查对象是否是某种类型
我想检查被传递的对象是一个DropDownList然后执行一些代码,如果它是。我如何做到这一点?
我的代码到目前为止不工作:
Sub FillCategories(ByVal Obj As Object) Dim cmd As New sqlCommand("sp_Resources_Categories",Conn) cmd.CommandType = CommandType.StoredProcedure Obj.DataSource = cmd.ExecuteReader If Obj Is System.Web.UI.WebControls.DropDownList Then End If Obj.DataBind() End Sub
GetType
method来检索对象的实例的类型,并使用
GetType()
operator来检索另一种已知类型的类型。
一旦你有两种类型,你可以简单地使用Is运算符进行比较。
所以你的代码应该实际写成这样:
Sub FillCategories(ByVal Obj As Object) Dim cmd As New sqlCommand("sp_Resources_Categories",Conn) cmd.CommandType = CommandType.StoredProcedure Obj.DataSource = cmd.ExecuteReader If Obj.GetType() Is GetType(System.Web.UI.WebControls.DropDownList) Then End If Obj.DataBind() End Sub
您还可以使用TypeOf
运算符而不是GetType方法。注意,这将测试你的对象是否与给定的类型兼容,而不是它是相同的类型。看起来像这样:
If TypeOf Obj Is System.Web.UI.WebControls.DropDownList Then End If
完全琐碎,不相关的昵称:传统上,当编写.NET代码(VB.NET或C#)时,参数的名称是camelCased(意味着它们总是以小写字母开头)。这使得他们很容易从类,类型,方法等一目了然。
c – 如何检查类型是否是给定类模板的实例化?
是否可以检查一个类型是特定模板的实例化?
我有一个类模板,其中一个模板参数必须是特定模板的实例化或其他类型.例如,考虑一个类型列表的简单定义:
struct null_type;template <typename Head,typename Tail>struct typelist{ // Tail must be a typelist or null_type typedef Head head; typedef Tail tail;};
现在,我想确保为Tail模板参数提供的类型始终是类型列表的实例化或null_type.我可以使用部分专业化定义模板,仅针对这些情况,如下所示:
template <typename Head,typename Tail>struct typelist; // default,not definedtemplate <typename Head,typename H,typename T>struct typelist< Head,typelist<H,T> > // Tail = typelist,ok{ typedef Head head; typedef typelist<H,T> tail;};template <typename Head>struct typelist< Head,null_type > // Tail = null_type,ok{ typedef Head head; typedef null_type tail;};
但是,我最终会重复代码,这是我想避免的.理想情况下,我需要一个特征来测试一个类型是否是模板的实例化,将其与enable_if或静态断言配合使用:
#include <boost/mpl/or.hpp>#include <type_traits>struct null_type;template <typename Head,typename Tail>struct typelist{ static_assert( boost::mpl::or_< is_instantiation_of< typelist,Tail >,std::is_same< Tail,null_type > >::value,"Tail must be a typelist or null_type" ); typedef Head head; typedef Tail tail;};
标准库或Boost中是否有这样的特质(is_instantiation_of)?是可以写一个吗?
解决方法
#include <type_traits>template < template <typename...> class Template,typename T >struct is_instantiation_of : std::false_type {};template < template <typename...> class Template,typename... Args >struct is_instantiation_of< Template,Template<Args...> > : std::true_type {};
它可以通过使用预处理器为不同数量的模板参数生成版本而适用于C 03,但也可能有一种更简单的方法.
C# – 遍历List中的给定类型元素
我使用List来存储对这些对象的所有引用.
我想遍历此List中的每个displayObject2D.
到目前为止,以下代码正在运行,但对C#开发不熟悉,我想知道是否有更好的做法:
List<Object2D> tmp = objects.FindAll( delegate( Object2D obj ) { return obj is displayObject2D; } ); foreach( displayObject2D obj in tmp ) { ... }
提前致谢!
解决方法
var objects2d = objects.OfType<displayObject2D>();
如果你想要一个IEnumerable
var listofObjects2d = objects2d.ToList();
如果你想要一个List
请注意,OfType将为您提供更具体的类型
IEnumerable<displayObject2D>
如果它不是您所期望的,请使用Cast扩展将其强制转换为可枚举的基类型.
var listofObjects2dFilteredByMoreSpecificType = objects.OfType<displayObject2D>.Cast<Object2D>() //.ToList() // until you really need an IList<T> better leave it just an enumerable ;
flex – 检查对象是否为空
请帮忙.
提前致谢.
解决方法
var isEmpty:Boolean = true; for (var n in obj) { isEmpty = false; break; }
关于检查对象是否是 Swift 中的给定类型和检测对象属性有哪些的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于.net – 如何检查对象是否是某种类型、c – 如何检查类型是否是给定类模板的实例化?、C# – 遍历List中的给定类型元素、flex – 检查对象是否为空的相关信息,请在本站寻找。
本文标签: