<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Visual_C%2B%2B_.NET%2FClass%2FProperty</id>
		<title>Visual C++ .NET/Class/Property - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Visual_C%2B%2B_.NET%2FClass%2FProperty"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Visual_C%2B%2B_.NET/Class/Property&amp;action=history"/>
		<updated>2026-04-29T21:53:57Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Visual_C%2B%2B_.NET/Class/Property&amp;diff=3624&amp;oldid=prev</id>
		<title> в 15:31, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Visual_C%2B%2B_.NET/Class/Property&amp;diff=3624&amp;oldid=prev"/>
				<updated>2010-05-26T15:31:02Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:31, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=Visual_C%2B%2B_.NET/Class/Property&amp;diff=3625&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Visual_C%2B%2B_.NET/Class/Property&amp;diff=3625&amp;oldid=prev"/>
				<updated>2010-05-26T12:05:43Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Array Property==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
ref class MyClass&lt;br /&gt;
{&lt;br /&gt;
public:&lt;br /&gt;
    MyClass(int size)&lt;br /&gt;
    {&lt;br /&gt;
        numArray = gcnew array&amp;lt;int&amp;gt;(size);&lt;br /&gt;
    }&lt;br /&gt;
    property array&amp;lt;int&amp;gt;^ NumArray&lt;br /&gt;
    {&lt;br /&gt;
        array&amp;lt;int&amp;gt;^ get() &lt;br /&gt;
        {&lt;br /&gt;
            return numArray;&lt;br /&gt;
        }&lt;br /&gt;
        void set ( array&amp;lt;int&amp;gt;^ value )&lt;br /&gt;
        {&lt;br /&gt;
            numArray = value;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
private:&lt;br /&gt;
    array&amp;lt;int&amp;gt;^ numArray;&lt;br /&gt;
};&lt;br /&gt;
void main() &lt;br /&gt;
{&lt;br /&gt;
    MyClass aprop(5);&lt;br /&gt;
    for ( int i = 0 ; i &amp;lt; aprop.NumArray-&amp;gt;Length ; ++i )&lt;br /&gt;
        aprop.NumArray[i] = i;&lt;br /&gt;
    for each (int i in aprop.NumArray)&lt;br /&gt;
        Console::WriteLine(i);&lt;br /&gt;
} &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Declaring properties==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
value class MyClass{&lt;br /&gt;
   public:&lt;br /&gt;
     property unsigned int MyInt;&lt;br /&gt;
     property double MyDouble;&lt;br /&gt;
     property String^ Name;&lt;br /&gt;
     property String^ Symbol;&lt;br /&gt;
};&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
   MyClass myobject;&lt;br /&gt;
   myobject.MyInt = 8;&lt;br /&gt;
   myobject.MyDouble = 15.9994;&lt;br /&gt;
   myobject.Name = &amp;quot;AA&amp;quot;;&lt;br /&gt;
   myobject.Symbol = &amp;quot;O&amp;quot;;&lt;br /&gt;
   Console::WriteLine(&amp;quot;Element: {0} Symbol: {1}&amp;quot;, myobject.Name, myobject.Symbol);&lt;br /&gt;
   Console::WriteLine(&amp;quot;Number: {0} Weight: {1}&amp;quot;,myobject.MyInt, myobject.MyDouble);&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Defining Index Properties==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
ref class Numbers &lt;br /&gt;
{&lt;br /&gt;
public:&lt;br /&gt;
    Numbers()&lt;br /&gt;
    {&lt;br /&gt;
        defaultArray = gcnew array&amp;lt;String^&amp;gt; &lt;br /&gt;
        { &lt;br /&gt;
            &amp;quot;zero&amp;quot;, &amp;quot;one&amp;quot;, &amp;quot;two&amp;quot;, &amp;quot;three&amp;quot;, &amp;quot;four&amp;quot;, &amp;quot;five&amp;quot; &lt;br /&gt;
        };&lt;br /&gt;
    }&lt;br /&gt;
    property String^ default [int]&lt;br /&gt;
    {&lt;br /&gt;
        String^ get(int index)&lt;br /&gt;
        {&lt;br /&gt;
            if (index &amp;lt; 0)&lt;br /&gt;
                index = 0;&lt;br /&gt;
            else if (index &amp;gt; defaultArray-&amp;gt;Length)&lt;br /&gt;
                index = defaultArray-&amp;gt;Length - 1;&lt;br /&gt;
            return defaultArray[index];&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
private:&lt;br /&gt;
     array&amp;lt;String^&amp;gt;^ defaultArray;&lt;br /&gt;
};&lt;br /&gt;
void main() &lt;br /&gt;
{&lt;br /&gt;
    Numbers numbers;&lt;br /&gt;
    Console::WriteLine(numbers[-1]);&lt;br /&gt;
    Console::WriteLine(numbers[3]);&lt;br /&gt;
    Console::WriteLine(numbers[10]);&lt;br /&gt;
} &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Indexed properties==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
ref class Numbers&lt;br /&gt;
{&lt;br /&gt;
   array&amp;lt;String^&amp;gt;^ ordinals;&lt;br /&gt;
   public:&lt;br /&gt;
      Numbers()&lt;br /&gt;
      {&lt;br /&gt;
          ordinals = gcnew array&amp;lt;String^&amp;gt; { &amp;quot;zero&amp;quot;, &amp;quot;one&amp;quot;, &amp;quot;two&amp;quot;, &amp;quot;three&amp;quot; };&lt;br /&gt;
      }&lt;br /&gt;
      property String^ ordinal[unsigned int]&lt;br /&gt;
      {&lt;br /&gt;
         String^ get(unsigned int index)&lt;br /&gt;
         {&lt;br /&gt;
             return ordinals[index];&lt;br /&gt;
         }&lt;br /&gt;
         void set(unsigned int index, String^ value)&lt;br /&gt;
         {&lt;br /&gt;
             ordinals[index] = value;&lt;br /&gt;
         }&lt;br /&gt;
      }&lt;br /&gt;
};&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
   Numbers^ nums = gcnew Numbers();&lt;br /&gt;
   Console::WriteLine( nums-&amp;gt;ordinal[0] );&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Indexed properties 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
ref class Numbers&lt;br /&gt;
{&lt;br /&gt;
   array&amp;lt;String^&amp;gt;^ ordinals;&lt;br /&gt;
   public:&lt;br /&gt;
      Numbers()&lt;br /&gt;
      {&lt;br /&gt;
          ordinals = gcnew array&amp;lt;String^&amp;gt; { &amp;quot;zero&amp;quot;, &amp;quot;one&amp;quot;, &amp;quot;two&amp;quot;, &amp;quot;three&amp;quot; };&lt;br /&gt;
      }&lt;br /&gt;
      property String^ default[unsigned int]&lt;br /&gt;
      {&lt;br /&gt;
         String^ get(unsigned int index)&lt;br /&gt;
         {&lt;br /&gt;
             return ordinals[index];&lt;br /&gt;
         }&lt;br /&gt;
         void set(unsigned int index, String^ value)&lt;br /&gt;
         {&lt;br /&gt;
             ordinals[index] = value;&lt;br /&gt;
         }&lt;br /&gt;
      }&lt;br /&gt;
};&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
   Numbers nums;&lt;br /&gt;
   Console::WriteLine( nums[0] );&lt;br /&gt;
   Numbers^ nums2 = gcnew Numbers();&lt;br /&gt;
   Console::WriteLine( nums2[1] );&lt;br /&gt;
   Console::WriteLine( nums.default[2] );&lt;br /&gt;
   Console::WriteLine( nums2-&amp;gt;default[3] );&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Property accessor delegate==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
delegate double ValueAccessor();&lt;br /&gt;
value class MyClass&lt;br /&gt;
{&lt;br /&gt;
   public:&lt;br /&gt;
     property double MyDouble;&lt;br /&gt;
};&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  MyClass myobject;&lt;br /&gt;
  myobject.MyDouble = 15.9994;&lt;br /&gt;
  ValueAccessor^ get_method = gcnew ValueAccessor(myobject,&amp;amp;MyClass::MyDouble::get);&lt;br /&gt;
  Console::WriteLine(&amp;quot;{0}&amp;quot;, get_method-&amp;gt;Invoke());&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Public properties can be used as named parameters==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
[AttributeUsageAttribute(AttributeTargets::Assembly | AttributeTargets::Class)]&lt;br /&gt;
public ref class OwnerAttribute : Attribute&lt;br /&gt;
{&lt;br /&gt;
   public:&lt;br /&gt;
      property String^ DevOwner;&lt;br /&gt;
      property String^ TestOwner;&lt;br /&gt;
      OwnerAttribute() { }&lt;br /&gt;
};&lt;br /&gt;
[ Owner(DevOwner=&amp;quot;John&amp;quot;) ]&lt;br /&gt;
ref class C2&lt;br /&gt;
{&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    Attribute^ attribute = Attribute::GetCustomAttribute( C2::typeid,OwnerAttribute::typeid);&lt;br /&gt;
    if (attribute != nullptr)&lt;br /&gt;
    {&lt;br /&gt;
         Console::WriteLine(&amp;quot;{0}&amp;quot;, attribute);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Scalar number Property==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
ref class MyClass{&lt;br /&gt;
public:&lt;br /&gt;
    MyClass(){&lt;br /&gt;
        Cost        = 0.0;&lt;br /&gt;
        number      = 0;&lt;br /&gt;
        name        = &amp;quot;name&amp;quot;;&lt;br /&gt;
        description = &amp;quot;Property&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    property double Cost;&lt;br /&gt;
    property int Number&lt;br /&gt;
    {&lt;br /&gt;
        void set(int value)&lt;br /&gt;
        {&lt;br /&gt;
            if (value &amp;lt; 1)&lt;br /&gt;
                value = 1;&lt;br /&gt;
            else if (value &amp;gt; 10)&lt;br /&gt;
                value = 10;&lt;br /&gt;
            &lt;br /&gt;
            number = value;&lt;br /&gt;
        }&lt;br /&gt;
        int get()&lt;br /&gt;
        {&lt;br /&gt;
            return number;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    property String^ Name&lt;br /&gt;
    {&lt;br /&gt;
        void set(String^ value)&lt;br /&gt;
        {&lt;br /&gt;
            name = value;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    property String ^Description&lt;br /&gt;
    {&lt;br /&gt;
        String^ get()&lt;br /&gt;
        {&lt;br /&gt;
            return String::Concat(name, &amp;quot; &amp;quot;, description);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
private:&lt;br /&gt;
    String ^name;&lt;br /&gt;
    String ^description;&lt;br /&gt;
    int     number;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    MyClass sp;&lt;br /&gt;
    sp.Name = &amp;quot;new name&amp;quot;;&lt;br /&gt;
    Console::WriteLine(sp.Description);&lt;br /&gt;
    sp.Cost = 123.45;&lt;br /&gt;
    Console::WriteLine(sp.Cost);&lt;br /&gt;
    sp.Number = 20;    &lt;br /&gt;
    Console::WriteLine(sp.Number);&lt;br /&gt;
    sp.Number = -5;    &lt;br /&gt;
    Console::WriteLine(sp.Number);&lt;br /&gt;
    sp.Number = 6;    &lt;br /&gt;
    Console::WriteLine(sp.Number);&lt;br /&gt;
} &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Static property==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
value class MyClass{&lt;br /&gt;
   public:&lt;br /&gt;
      static property array&amp;lt;MyClass&amp;gt;^ pp;&lt;br /&gt;
      static MyClass()&lt;br /&gt;
      {&lt;br /&gt;
          pp = gcnew array&amp;lt;MyClass&amp;gt;(120);&lt;br /&gt;
      }&lt;br /&gt;
};&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual properties==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
ref class Base&lt;br /&gt;
{&lt;br /&gt;
   public:&lt;br /&gt;
   virtual property int Prop;&lt;br /&gt;
};&lt;br /&gt;
ref class Derived : Base&lt;br /&gt;
{&lt;br /&gt;
   int prop;&lt;br /&gt;
   public:&lt;br /&gt;
   virtual property int Prop&lt;br /&gt;
   {&lt;br /&gt;
      int get() override { return prop; }&lt;br /&gt;
      void set(int value) override { prop = value; }&lt;br /&gt;
   }&lt;br /&gt;
};&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Write only property==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
ref class MyClass&lt;br /&gt;
{&lt;br /&gt;
    unsigned int atomic_number;&lt;br /&gt;
    public:&lt;br /&gt;
       property unsigned int MyValueNumber;&lt;br /&gt;
       property unsigned int MyInt&lt;br /&gt;
       {&lt;br /&gt;
            public: unsigned int get()&lt;br /&gt;
            {&lt;br /&gt;
                return atomic_number;&lt;br /&gt;
            }&lt;br /&gt;
            protected: void set(unsigned int n)&lt;br /&gt;
            {&lt;br /&gt;
                atomic_number = n;&lt;br /&gt;
            }&lt;br /&gt;
       }&lt;br /&gt;
};&lt;br /&gt;
ref class RadioactiveMyClass : MyClass&lt;br /&gt;
{&lt;br /&gt;
    public:&lt;br /&gt;
      void AlphaDecay()&lt;br /&gt;
      {&lt;br /&gt;
          MyInt -= 2;&lt;br /&gt;
          MyValueNumber -= 4;&lt;br /&gt;
      }&lt;br /&gt;
};&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>