12345678910111213141516171819202122232425262728293031323334353637383940 |
- using System;
- using System.Collections.Generic;
- namespace Mirror
- {
- public static class Extensions
- {
- // string.GetHashCode is not guaranteed to be the same on all machines, but
- // we need one that is the same on all machines. simple and stupid:
- public static int GetStableHashCode(this string text)
- {
- unchecked
- {
- int hash = 23;
- foreach (char c in text)
- hash = hash * 31 + c;
- return hash;
- }
- }
- // previously in DotnetCompatibility.cs
- // leftover from the UNET days. supposedly for windows store?
- internal static string GetMethodName(this Delegate func)
- {
- #if NETFX_CORE
- return func.GetMethodInfo().Name;
- #else
- return func.Method.Name;
- #endif
- }
- // helper function to copy to List<T>
- // C# only provides CopyTo(T[])
- public static void CopyTo<T>(this IEnumerable<T> source, List<T> destination)
- {
- // foreach allocates. use AddRange.
- destination.AddRange(source);
- }
- }
- }
|