Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / Int64.cs / 1 / Int64.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
/*============================================================
**
** Class: Int64.cs
**
**
** Purpose: This class will encapsulate a long and provide an
** Object representation of it.
**
**
===========================================================*/
namespace System {
using System;
using System.Globalization;
using System.Runtime.InteropServices;
[Serializable, System.Runtime.InteropServices.StructLayout(LayoutKind.Sequential)]
[System.Runtime.InteropServices.ComVisible(true)]
public struct Int64 : IComparable, IFormattable, IConvertible
#if GENERICS_WORK
, IComparable, IEquatable
#endif
{
internal long m_value;
public const long MaxValue = 0x7fffffffffffffffL;
public const long MinValue = unchecked((long)0x8000000000000000L);
// Compares this object to another object, returning an integer that
// indicates the relationship.
// Returns a value less than zero if this object
// null is considered to be less than any instance.
// If object is not of type Int64, this method throws an ArgumentException.
//
public int CompareTo(Object value) {
if (value == null) {
return 1;
}
if (value is Int64) {
// Need to use compare because subtraction will wrap
// to positive for very large neg numbers, etc.
long i = (long)value;
if (m_value < i) return -1;
if (m_value > i) return 1;
return 0;
}
throw new ArgumentException (Environment.GetResourceString("Arg_MustBeInt64"));
}
public int CompareTo(Int64 value) {
// Need to use compare because subtraction will wrap
// to positive for very large neg numbers, etc.
if (m_value < value) return -1;
if (m_value > value) return 1;
return 0;
}
public override bool Equals(Object obj) {
if (!(obj is Int64)) {
return false;
}
return m_value == ((Int64)obj).m_value;
}
public bool Equals(Int64 obj)
{
return m_value == obj;
}
// The value of the lower 32 bits XORed with the uppper 32 bits.
public override int GetHashCode() {
return (unchecked((int)((long)m_value)) ^ (int)(m_value >> 32));
}
public override String ToString() {
return Number.FormatInt64(m_value, null, NumberFormatInfo.CurrentInfo);
}
public String ToString(IFormatProvider provider) {
return Number.FormatInt64(m_value, null, NumberFormatInfo.GetInstance(provider));
}
public String ToString(String format) {
return Number.FormatInt64(m_value, format, NumberFormatInfo.CurrentInfo);
}
public String ToString(String format, IFormatProvider provider) {
return Number.FormatInt64(m_value, format, NumberFormatInfo.GetInstance(provider));
}
public static long Parse(String s) {
return Number.ParseInt64(s, NumberStyles.Integer, NumberFormatInfo.CurrentInfo);
}
public static long Parse(String s, NumberStyles style) {
NumberFormatInfo.ValidateParseStyleInteger(style);
return Number.ParseInt64(s, style, NumberFormatInfo.CurrentInfo);
}
public static long Parse(String s, IFormatProvider provider) {
return Number.ParseInt64(s, NumberStyles.Integer, NumberFormatInfo.GetInstance(provider));
}
// Parses a long from a String in the given style. If
// a NumberFormatInfo isn't specified, the current culture's
// NumberFormatInfo is assumed.
//
public static long Parse(String s, NumberStyles style, IFormatProvider provider) {
NumberFormatInfo.ValidateParseStyleInteger(style);
return Number.ParseInt64(s, style, NumberFormatInfo.GetInstance(provider));
}
public static Boolean TryParse(String s, out Int64 result) {
return Number.TryParseInt64(s, NumberStyles.Integer, NumberFormatInfo.CurrentInfo, out result);
}
public static Boolean TryParse(String s, NumberStyles style, IFormatProvider provider, out Int64 result) {
NumberFormatInfo.ValidateParseStyleInteger(style);
return Number.TryParseInt64(s, style, NumberFormatInfo.GetInstance(provider), out result);
}
//
// IValue implementation
//
public TypeCode GetTypeCode() {
return TypeCode.Int64;
}
///
bool IConvertible.ToBoolean(IFormatProvider provider) {
return Convert.ToBoolean(m_value);
}
///
char IConvertible.ToChar(IFormatProvider provider) {
return Convert.ToChar(m_value);
}
///
sbyte IConvertible.ToSByte(IFormatProvider provider) {
return Convert.ToSByte(m_value);
}
///
byte IConvertible.ToByte(IFormatProvider provider) {
return Convert.ToByte(m_value);
}
///
short IConvertible.ToInt16(IFormatProvider provider) {
return Convert.ToInt16(m_value);
}
///
ushort IConvertible.ToUInt16(IFormatProvider provider) {
return Convert.ToUInt16(m_value);
}
///
int IConvertible.ToInt32(IFormatProvider provider) {
return Convert.ToInt32(m_value);
}
///
uint IConvertible.ToUInt32(IFormatProvider provider) {
return Convert.ToUInt32(m_value);
}
///
long IConvertible.ToInt64(IFormatProvider provider) {
return m_value;
}
///
ulong IConvertible.ToUInt64(IFormatProvider provider) {
return Convert.ToUInt64(m_value);
}
///
float IConvertible.ToSingle(IFormatProvider provider) {
return Convert.ToSingle(m_value);
}
///
double IConvertible.ToDouble(IFormatProvider provider) {
return Convert.ToDouble(m_value);
}
///
Decimal IConvertible.ToDecimal(IFormatProvider provider) {
return Convert.ToDecimal(m_value);
}
///
DateTime IConvertible.ToDateTime(IFormatProvider provider) {
throw new InvalidCastException(String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("InvalidCast_FromTo"), "Int64", "DateTime"));
}
///
Object IConvertible.ToType(Type type, IFormatProvider provider) {
return Convert.DefaultToType((IConvertible)this, type, provider);
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MenuAdapter.cs
- MenuItemBinding.cs
- WebPartConnectionsConnectVerb.cs
- EmulateRecognizeCompletedEventArgs.cs
- XmlAttributeOverrides.cs
- ServiceOperationHelpers.cs
- CodeDirectiveCollection.cs
- GridViewColumnCollection.cs
- XmlTypeMapping.cs
- DataObjectCopyingEventArgs.cs
- NativeRecognizer.cs
- PassportIdentity.cs
- SecurityPolicySection.cs
- StoragePropertyMapping.cs
- Animatable.cs
- EntityDataSourceWizardForm.cs
- HandlerBase.cs
- LambdaCompiler.Generated.cs
- ToolStripSeparatorRenderEventArgs.cs
- TransformationRules.cs
- ParallelTimeline.cs
- XmlSchemaCompilationSettings.cs
- PrintEvent.cs
- DefaultBindingPropertyAttribute.cs
- BrowsableAttribute.cs
- NotifyParentPropertyAttribute.cs
- QilInvoke.cs
- XmlObjectSerializerReadContextComplexJson.cs
- ExecutionEngineException.cs
- DbSetClause.cs
- MasterPageParser.cs
- CodeAttributeDeclaration.cs
- UnsafeNativeMethods.cs
- ButtonFlatAdapter.cs
- PreviewPageInfo.cs
- IdentityNotMappedException.cs
- ISAPIRuntime.cs
- Freezable.cs
- EntityDesignerUtils.cs
- ResourceWriter.cs
- OracleRowUpdatedEventArgs.cs
- ContextMenuAutomationPeer.cs
- WindowsIPAddress.cs
- ListManagerBindingsCollection.cs
- WindowsBrush.cs
- EntityDataSourceValidationException.cs
- MarkupExtensionParser.cs
- Int32AnimationUsingKeyFrames.cs
- ListBoxAutomationPeer.cs
- QueryAccessibilityHelpEvent.cs
- ToolboxItemWrapper.cs
- SqlSupersetValidator.cs
- Pair.cs
- ConnectionPointCookie.cs
- XmlSiteMapProvider.cs
- AbstractDataSvcMapFileLoader.cs
- EntitySqlQueryCacheEntry.cs
- Axis.cs
- InternalPermissions.cs
- HtmlPhoneCallAdapter.cs
- GiveFeedbackEvent.cs
- MatrixKeyFrameCollection.cs
- WindowsBrush.cs
- OracleConnectionStringBuilder.cs
- Descriptor.cs
- GorillaCodec.cs
- PropertyDescriptor.cs
- ComPlusContractBehavior.cs
- SoapInteropTypes.cs
- TemplateLookupAction.cs
- TerminatingOperationBehavior.cs
- Root.cs
- WpfXamlType.cs
- DataListItem.cs
- FixedSOMLineCollection.cs
- ObjectAnimationUsingKeyFrames.cs
- SystemIPInterfaceProperties.cs
- DataControlFieldCollection.cs
- NullReferenceException.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- CellIdBoolean.cs
- ToolStripScrollButton.cs
- SoapSchemaImporter.cs
- SmiRecordBuffer.cs
- WorkflowQueueInfo.cs
- HandleExceptionArgs.cs
- XmlSchemaType.cs
- DocumentReference.cs
- XmlAttribute.cs
- AutomationIdentifier.cs
- CollaborationHelperFunctions.cs
- Predicate.cs
- TypedTableGenerator.cs
- DbParameterHelper.cs
- FragmentQueryProcessor.cs
- COM2IProvidePropertyBuilderHandler.cs
- EncodingNLS.cs
- Ops.cs
- TextInfo.cs
- IpcClientChannel.cs