Mono.CSharp.Field.CanBeVolatile C# (CSharp) Method

CanBeVolatile() private method

private CanBeVolatile ( ) : bool
return bool
		bool CanBeVolatile ()
		{
			switch (MemberType.BuiltinType) {
			case BuiltinTypeSpec.Type.Bool:
			case BuiltinTypeSpec.Type.Char:
			case BuiltinTypeSpec.Type.SByte:
			case BuiltinTypeSpec.Type.Byte:
			case BuiltinTypeSpec.Type.Short:
			case BuiltinTypeSpec.Type.UShort:
			case BuiltinTypeSpec.Type.Int:
			case BuiltinTypeSpec.Type.UInt:
			case BuiltinTypeSpec.Type.Float:
			case BuiltinTypeSpec.Type.UIntPtr:
			case BuiltinTypeSpec.Type.IntPtr:
				return true;
			}

			if (TypeSpec.IsReferenceType (MemberType))
				return true;

			if (MemberType.IsPointer)
				return true;

			if (MemberType.IsEnum) {
				switch (EnumSpec.GetUnderlyingType (MemberType).BuiltinType) {
				case BuiltinTypeSpec.Type.SByte:
				case BuiltinTypeSpec.Type.Byte:
				case BuiltinTypeSpec.Type.Short:
				case BuiltinTypeSpec.Type.UShort:
				case BuiltinTypeSpec.Type.Int:
				case BuiltinTypeSpec.Type.UInt:
					return true;
				default:
					return false;
				}
			}

			return false;
		}