|
-
Nov 14th, 2014, 01:03 PM
#1
[RESOLVED] Random Enum Generation
So I need to retrieve an enums min and max values to pass into a randomizer function for some unit testing to generate random enum values. However it needs to generate an enum member value based upon whatever random enum type is passed in.
This is what I have found so far that is close but need to call it passing the type dynamically.
Code:
public T RandomEnum<T>()
{
T[] values = (T[])Enum.GetValues(typeof(T));
return values[new Random().Next(0, values.Length)];
}
So I want to call it like this
Code:
var test = 0;
test = RandomEnum<selfProp.PropertyType>();
Last edited by RobDog888; Nov 14th, 2014 at 01:16 PM.
VB/Office Guru™ (AKA: Gangsta Yoda™ ®)
I dont answer coding questions via PM. Please post a thread in the appropriate forum. 
Microsoft MVP 2006-2011
Office Development FAQ (C#, VB.NET, VB 6, VBA)
Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
If a post has helped you then Please Rate it! 
• Reps & Rating Posts • VS.NET on Vista • Multiple .NET Framework Versions • Office Primary Interop Assemblies • VB/Office Guru™ Word SpellChecker™.NET • VB/Office Guru™ Word SpellChecker™ VB6 • VB.NET Attributes Ex. • Outlook Global Address List • API Viewer utility • .NET API Viewer Utility •
System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6 
-
Nov 14th, 2014, 02:04 PM
#2
Re: [RESOLVED] Random Enum Generation
Figured it out using reflection and generics
Code:
Type t = selfProp.PropertyType;
MethodInfo method = GetType().GetMethod("RandomEnum").MakeGenericMethod(new Type[] { t });
var enumObject = method.Invoke(this, BindingFlags.Public | BindingFlags.Static, null, null, CultureInfo.CurrentCulture);
selfProp.SetValue(sourceObject, enumObject);
VB/Office Guru™ (AKA: Gangsta Yoda™ ®)
I dont answer coding questions via PM. Please post a thread in the appropriate forum. 
Microsoft MVP 2006-2011
Office Development FAQ (C#, VB.NET, VB 6, VBA)
Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
If a post has helped you then Please Rate it! 
• Reps & Rating Posts • VS.NET on Vista • Multiple .NET Framework Versions • Office Primary Interop Assemblies • VB/Office Guru™ Word SpellChecker™.NET • VB/Office Guru™ Word SpellChecker™ VB6 • VB.NET Attributes Ex. • Outlook Global Address List • API Viewer utility • .NET API Viewer Utility •
System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6 
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|