-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathArrayCast.cs
More file actions
83 lines (65 loc) · 3.21 KB
/
Copy pathArrayCast.cs
File metadata and controls
83 lines (65 loc) · 3.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
using System;
using System.Collections;
using System.Collections.Generic;
public static class Program
{
public static void Main(string[] args)
{
Console.WriteLine("TestClass[]");
TestObject(new TestClass[0]);
Console.WriteLine();
Console.WriteLine("TestStruct[]");
TestObject(new TestStruct[0]);
Console.WriteLine();
Console.WriteLine("object[]");
TestObject(new object[0]);
Console.WriteLine();
Console.WriteLine("TestClass[,]");
TestObject(new TestClass[0,0]);
Console.WriteLine();
Console.WriteLine("TestStruct[,]");
TestObject(new TestStruct[0, 0]);
Console.WriteLine();
Console.WriteLine("object[,]");
TestObject(new object[0, 0]);
Console.WriteLine();
Console.WriteLine("null");
TestObject(null);
}
public static void TestObject(object c)
{
Console.WriteLine("IEnumerable: " + (c is IEnumerable ? "true" : "false"));
Console.WriteLine("ICollection: " + (c is ICollection ? "true" : "false"));
Console.WriteLine("IList: " + (c is IList ? "true" : "false"));
Console.WriteLine("IEnumerable<object>: " + (c is IEnumerable<object> ? "true" : "false"));
Console.WriteLine("ICollection<object>: " + (c is ICollection<object> ? "true" : "false"));
Console.WriteLine("IList<object>: " + (c is IList<object> ? "true" : "false"));
Console.WriteLine("IEnumerable<TestClass>: " + (c is IEnumerable<TestClass> ? "true" : "false"));
Console.WriteLine("ICollection<TestClass>: " + (c is ICollection<TestClass> ? "true" : "false"));
Console.WriteLine("IList<TestClass>: " + (c is IList<TestClass> ? "true" : "false"));
Console.WriteLine("IEnumerable<TestStruct>: " + (c is IEnumerable<TestStruct> ? "true" : "false"));
Console.WriteLine("ICollection<TestStruct>: " + (c is ICollection<TestStruct> ? "true" : "false"));
Console.WriteLine("IList<TestStruct>: " + (c is IList<TestStruct> ? "true" : "false"));
Console.WriteLine("IEnumerable<OtherTestClass>: " + (c is IEnumerable<OtherTestClass> ? "true" : "false"));
Console.WriteLine("ICollection<OtherTestClass>: " + (c is ICollection<OtherTestClass> ? "true" : "false"));
Console.WriteLine("IList<OtherTestClass>: " + (c is IList<OtherTestClass> ? "true" : "false"));
Console.WriteLine("Array: " + (c is Array ? "true" : "false"));
Console.WriteLine("TestClass[]: " + (c is TestClass[] ? "true" : "false"));
Console.WriteLine("TestStruct[]: " + (c is TestStruct[] ? "true" : "false"));
Console.WriteLine("object[]: " + (c is object[] ? "true" : "false"));
Console.WriteLine("OtherTestClass[]: " + (c is OtherTestClass[] ? "true" : "false"));
Console.WriteLine("TestClass[,]: " + (c is TestClass[,] ? "true" : "false"));
Console.WriteLine("TestStruct[,]: " + (c is TestStruct[,] ? "true" : "false"));
Console.WriteLine("object[,]: " + (c is object[,] ? "true" : "false"));
Console.WriteLine("OtherTestClass[,]: " + (c is OtherTestClass[,] ? "true" : "false"));
}
}
public class TestClass
{
}
public struct TestStruct
{
}
public class OtherTestClass
{
}