using System;
namespace SystemInterface
{
///
/// Wrapper for class.
///
public interface IVersion : ICloneable, IComparable, IComparable, IEquatable
{
///
/// Initializes a new instance of the class.
///
void Initialize(Version version);
///
/// Initializes a new instance of the class.
///
void Initialize();
///
/// Initializes a new instance of the Version class using the specified string.
///
/// A string containing the major, minor, build, and revision numbers, where each number is delimited with a period character ('.').
void Initialize(string version);
///
/// Initializes a new instance of the Version class using the specified major and minor values.
///
/// The major version number.
/// The minor version number.
void Initialize(int major, int minor);
///
/// Initializes a new instance of the Version class using the specified major and minor values.
///
/// The major version number.
/// The minor version number.
/// The build number.
void Initialize(int major, int minor, int build);
///
/// Initializes a new instance of the Version class using the specified major and minor values.
///
/// The major version number.
/// The minor version number.
/// The build number.
/// The revision number.
void Initialize(int major, int minor, int build, int revision);
// Properties
///
/// Gets object.
///
Version VersionInstance { get; }
///
/// Gets the value of the build component of the version number for the current Version object.
///
int Build { get; }
///
/// Gets the value of the major component of the version number for the current Version object.
///
int Major { get; }
///
/// Gets the high 16 bits of the revision number.
///
short MajorRevision { get; }
///
/// Gets the value of the minor component of the version number for the current Version object.
///
int Minor { get; }
///
/// Gets the low 16 bits of the revision number.
///
short MinorRevision { get; }
///
/// Gets the value of the revision component of the version number for the current Version object.
///
int Revision { get; }
// Methods
///
/// Returns a value indicating whether the current Version object is equal to a specified object.
///
/// An object to compare with the current Version object, or nullNothingnullptra null reference (Nothing in Visual Basic).
/// true if the current Version object and obj are both Version objects, and every component of the current Version object matches the corresponding component of obj; otherwise, false.
bool Equals(object obj);
///
/// Returns a hash code for the current Version object.
///
/// A 32-bit signed integer hash code.
int GetHashCode();
///
/// Converts the value of the current IVersionWrap object to its equivalent String representation.
///
///
/// The String representation of the values of the major, minor, build, and revision components of the current Version object, as depicted in the following format. Each component is separated by a period character ('.'). Square brackets ('[' and ']') indicate a component that will not appear in the return value if the component is not defined:
/// major.minor[.build[.revision]].
///
string ToString();
///
/// Converts the value of the current Version object to its equivalent String representation. A specified count indicates the number of components to return.
///
/// The number of components to return. The fieldCount ranges from 0 to 4.
/// The String representation of the values of the major, minor, build, and revision components of the current Version object, each separated by a period character ('.'). The fieldCount parameter determines how many components are returned.
string ToString(int fieldCount);
/*
public static bool operator ==(Version v1, Version v2);
public static bool operator >(Version v1, Version v2);
public static bool operator >=(Version v1, Version v2);
public static bool operator !=(Version v1, Version v2);
public static bool operator <(Version v1, Version v2);
public static bool operator <=(Version v1, Version v2);
*/
}
}