Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / Int32.cs / 1 / Int32.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
/*============================================================
**
** Class: Int32
**
**
** Purpose: A representation of a 32 bit 2's complement
** integer.
**
**
===========================================================*/
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 Int32 : IComparable, IFormattable, IConvertible
#if GENERICS_WORK
, IComparable, IEquatable
#endif
{
internal int m_value;
public const int MaxValue = 0x7fffffff;
public const int MinValue = unchecked((int)0x80000000);
// 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 Int32, this method throws an ArgumentException.
//
public int CompareTo(Object value) {
if (value == null) {
return 1;
}
if (value is Int32) {
// Need to use compare because subtraction will wrap
// to positive for very large neg numbers, etc.
int i = (int)value;
if (m_value < i) return -1;
if (m_value > i) return 1;
return 0;
}
throw new ArgumentException (Environment.GetResourceString("Arg_MustBeInt32"));
}
public int CompareTo(int 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 Int32)) {
return false;
}
return m_value == ((Int32)obj).m_value;
}
public bool Equals(Int32 obj)
{
return m_value == obj;
}
// The absolute value of the int contained.
public override int GetHashCode() {
return m_value;
}
public override String ToString() {
return Number.FormatInt32(m_value, null, NumberFormatInfo.CurrentInfo);
}
public String ToString(String format) {
return Number.FormatInt32(m_value, format, NumberFormatInfo.CurrentInfo);
}
public String ToString(IFormatProvider provider) {
return Number.FormatInt32(m_value, null, NumberFormatInfo.GetInstance(provider));
}
public String ToString(String format, IFormatProvider provider) {
return Number.FormatInt32(m_value, format, NumberFormatInfo.GetInstance(provider));
}
public static int Parse(String s) {
return Number.ParseInt32(s, NumberStyles.Integer, NumberFormatInfo.CurrentInfo);
}
public static int Parse(String s, NumberStyles style) {
NumberFormatInfo.ValidateParseStyleInteger(style);
return Number.ParseInt32(s, style, NumberFormatInfo.CurrentInfo);
}
// Parses an integer from a String in the given style. If
// a NumberFormatInfo isn't specified, the current culture's
// NumberFormatInfo is assumed.
//
public static int Parse(String s, IFormatProvider provider) {
return Number.ParseInt32(s, NumberStyles.Integer, NumberFormatInfo.GetInstance(provider));
}
// Parses an integer from a String in the given style. If
// a NumberFormatInfo isn't specified, the current culture's
// NumberFormatInfo is assumed.
//
public static int Parse(String s, NumberStyles style, IFormatProvider provider) {
NumberFormatInfo.ValidateParseStyleInteger(style);
return Number.ParseInt32(s, style, NumberFormatInfo.GetInstance(provider));
}
// Parses an integer from a String. Returns false rather
// than throwing exceptin if input is invalid
//
public static bool TryParse(String s, out Int32 result) {
return Number.TryParseInt32(s, NumberStyles.Integer, NumberFormatInfo.CurrentInfo, out result);
}
// Parses an integer from a String in the given style. Returns false rather
// than throwing exceptin if input is invalid
//
public static bool TryParse(String s, NumberStyles style, IFormatProvider provider, out Int32 result) {
NumberFormatInfo.ValidateParseStyleInteger(style);
return Number.TryParseInt32(s, style, NumberFormatInfo.GetInstance(provider), out result);
}
//
// IValue implementation
//
public TypeCode GetTypeCode() {
return TypeCode.Int32;
}
///
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 m_value;
}
///
uint IConvertible.ToUInt32(IFormatProvider provider) {
return Convert.ToUInt32(m_value);
}
///
long IConvertible.ToInt64(IFormatProvider provider) {
return Convert.ToInt64(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"), "Int32", "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
- UInt32Storage.cs
- DefaultMergeHelper.cs
- XmlSerializerAssemblyAttribute.cs
- WsiProfilesElement.cs
- ProviderConnectionPoint.cs
- Object.cs
- RowVisual.cs
- IItemProperties.cs
- FrugalList.cs
- FragmentNavigationEventArgs.cs
- ThemeInfoAttribute.cs
- SystemInfo.cs
- TransactionBridge.cs
- XmlSchemaSequence.cs
- AvTrace.cs
- StateMachineExecutionState.cs
- ChildChangedEventArgs.cs
- FunctionQuery.cs
- SqlBulkCopyColumnMapping.cs
- TdsParserSessionPool.cs
- ColorTransform.cs
- GatewayDefinition.cs
- TraceLevelStore.cs
- RecognizedPhrase.cs
- DesignerImageAdapter.cs
- CurrencyWrapper.cs
- bindurihelper.cs
- IPAddress.cs
- _KerberosClient.cs
- TypeBrowserDialog.cs
- IDReferencePropertyAttribute.cs
- InternalDispatchObject.cs
- ListViewItem.cs
- EntityContainer.cs
- ellipse.cs
- WebPartMovingEventArgs.cs
- TranslateTransform3D.cs
- HostProtectionPermission.cs
- FormsAuthenticationTicket.cs
- AlignmentXValidation.cs
- UpdateException.cs
- BlurBitmapEffect.cs
- AdornerDecorator.cs
- BindableAttribute.cs
- ViewCellRelation.cs
- AllMembershipCondition.cs
- Opcode.cs
- MediaScriptCommandRoutedEventArgs.cs
- CodeIdentifier.cs
- XmlSerializerVersionAttribute.cs
- SafeMemoryMappedFileHandle.cs
- GridViewUpdatedEventArgs.cs
- SqlException.cs
- DefaultTraceListener.cs
- BitmapMetadata.cs
- EntityDataSourceDataSelection.cs
- MenuAutomationPeer.cs
- BinaryObjectWriter.cs
- XmlObjectSerializerReadContextComplex.cs
- DecoderBestFitFallback.cs
- FileVersion.cs
- HelpEvent.cs
- ClockGroup.cs
- DbMetaDataColumnNames.cs
- GridViewCancelEditEventArgs.cs
- MarkupObject.cs
- GenericWebPart.cs
- RadioButton.cs
- Parsers.cs
- TemplateLookupAction.cs
- log.cs
- FilterQuery.cs
- ReadOnlyDictionary.cs
- SchemaTableOptionalColumn.cs
- LocalizabilityAttribute.cs
- DoubleLinkList.cs
- DBConnection.cs
- coordinator.cs
- DetailsViewRow.cs
- AccessibleObject.cs
- EncryptedPackageFilter.cs
- ManagementScope.cs
- DirectoryNotFoundException.cs
- __ConsoleStream.cs
- DataGridViewUtilities.cs
- OutputCacheSettingsSection.cs
- ClientTargetSection.cs
- QilList.cs
- COM2ICategorizePropertiesHandler.cs
- ConfigUtil.cs
- glyphs.cs
- WinInetCache.cs
- OAVariantLib.cs
- C14NUtil.cs
- SchemaImporterExtension.cs
- PropertiesTab.cs
- Help.cs
- SamlAuthorityBinding.cs
- WebAdminConfigurationHelper.cs
- XmlObjectSerializerReadContextComplexJson.cs