Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace _01HarestingFields
- {
- using System;
- using System.Text;
- using System.Reflection;
- using System.Linq;
- class HarvestingFieldsTest
- {
- static void Main(string[] args)
- {
- var input = "";
- string result = "";
- StringBuilder sb = new StringBuilder();
- var typeOfHarvester = typeof(HarvestingFields);
- FieldInfo[] fields = typeOfHarvester.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
- while ((input = Console.ReadLine()) != "HARVEST")
- {
- switch (input)
- {
- case "private":
- result = GetAllFields(fields.Where(f => f.IsPrivate).ToArray(),sb);
- Console.WriteLine(result);
- break;
- case "public":
- result = GetAllFields(fields.Where(f => f.IsPublic).ToArray(), sb);
- Console.WriteLine(result);
- break;
- case "protected":
- result = GetAllFields(fields.Where(f => f.IsFamily).ToArray(), sb);
- Console.WriteLine(result);
- break;
- case "all":
- result = GetAllFields(fields, sb);
- Console.WriteLine(result);
- break;
- default:
- break;
- }
- }
- }
- private static string GetAllFields(FieldInfo[] fields, StringBuilder sb)
- {
- foreach (var field in fields)
- {
- var accessModifier = field.Attributes.ToString().ToLower();
- if (accessModifier.Equals("family"))
- {
- accessModifier = "protected";
- }
- sb.AppendLine($"{accessModifier} {field.FieldType.Name} {field.Name}");
- }
- return sb.ToString().TrimEnd();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment