Advertisement
Guest User

Untitled

a guest
Apr 21st, 2014
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.30 KB | None | 0 0
  1. public static class A
  2. {
  3. public static class BA
  4. {
  5. public const string BAA = "baa";
  6. public const string BAB = "bab";
  7. public const string BAC = "bac";
  8. }
  9. public static class BB
  10. {
  11. public const string BBA = "bba";
  12. public const string BBB = "bbb";
  13. public const string BBC = "bbc";
  14. }
  15. }
  16.  
  17. string[] BAs = new string[]{"baa","bab","bac"};
  18. string[] BBs = new string[]{"bba","bbb","bbc"};
  19.  
  20. string[] BAs = new string[]{"BAA","BAB","BAC"};
  21. string[] BBs = new string[]{"BBA","BBB","BBC"};
  22.  
  23. string[] BAs = A.BA.GetAllStringVariablesFromStaticMembers();
  24. string[] BBs = A.BB.GetAllStringVariablesFromStaticMembers();
  25.  
  26. public static String[] GetAllStringVariablesFromStaticMembers(Type value) {
  27. if (Object.ReferenceEquals(null, value))
  28. throw new ArgumentNullException("value");
  29.  
  30. List<String> result = new List<String>();
  31.  
  32. foreach (FieldInfo fi in value.GetFields(BindingFlags.Static | BindingFlags.Public))
  33. if (fi.FieldType == typeof(String))
  34. result.Add(fi.GetValue(null) as String);
  35.  
  36. return result.ToArray();
  37. }
  38.  
  39. ...
  40.  
  41. string[] BAs = GetAllStringVariablesFromStaticMembers(typeof(A.BA));
  42.  
  43. public static class TypeExtension
  44. {
  45. public static string[] GetStaticStrings(this Type type)
  46. {
  47. return type
  48. .GetFields(BindingFlags.Public | BindingFlags.Static)
  49. .Where(field => field.FieldType == typeof(string))
  50. .Select(field => (string)field.GetValue(null))
  51. .ToArray();
  52. }
  53. }
  54.  
  55. string[] arr = typeof(A.BA).GetStaticStrings();
  56.  
  57. public static class A {
  58. public static readonly A_Wrapper BA = new A_Wrapper(
  59. new string[3] {
  60. "baa",
  61. "bab",
  62. "bac"
  63. }
  64. );
  65.  
  66. public static readonly A_Wrapper BB = new A_Wrapper(
  67. new string[3] {
  68. "bba",
  69. "bbb",
  70. "bbc"
  71. }
  72. );
  73.  
  74. public class A_Wrapper {
  75. public A_Wrapper(string[] data) {
  76. this.data = data;
  77. }
  78. private readonly string[] data;
  79. public string[] GetAllStringVariablesFromStaticMembers() {
  80. return data;
  81. }
  82. }
  83. }
  84.  
  85. var data1 = A.BA.GetAllStringVariablesFromStaticMembers(); // baa, bab, bac
  86. var data2 = A.BB.GetAllStringVariablesFromStaticMembers(); // bba, bbb, bbc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement