PDA

View Full Version : سوال: تشریح کد و عملکرد آن



Faraz Mehraien
پنج شنبه 28 فروردین 1393, 21:11 عصر
با سلام.من می خواستم بدونم این کد دقیقا چیه و چه کاری را انجام می دهد؟؟؟؟در این حد می دونم که یه نوع prpeties یا صفت می باشد فقط برای ارایه دو بعدی می باشدممنون می شم اگر توضیح دهید
public static double this(intx,inty)
{
get{ return matrix[x,y] ;}
set { matrix[x,y]=value;}
}

mousa1992
جمعه 29 فروردین 1393, 02:09 صبح
به نام او
indexer (http://msdn.microsoft.com/en-us/library/2549tw02.aspx)
با استفاده از indexer ها میتونید برای دسترسی به متغیری (مثل عنصری از ارایه) از اندیس استفاده کنید
indexer ها یکی از اعضای کلاس ها میتونند باشند و نحوه استفاده هم در لینکی که قرار داده شده وجود داره

Faraz Mehraien
شنبه 30 فروردین 1393, 15:41 عصر
به نام او
indexer (http://msdn.microsoft.com/en-us/library/2549tw02.aspx)
با استفاده از indexer ها میتونید برای دسترسی به متغیری (مثل عنصری از ارایه) از اندیس استفاده کنید
indexer ها یکی از اعضای کلاس ها میتونند باشند و نحوه استفاده هم در لینکی که قرار داده شده وجود داره
ممنون ولی قضیه اون double this چیه؟؟؟؟

Mojtaba.Shateri
یک شنبه 31 فروردین 1393, 11:11 صبح
ممنون ولی قضیه اون double this چیه؟؟؟؟

این کد رو خوب بررسی کنید ، فکر کنم جوابتون رو میگیرید :
using System;

class Layout
{
string[] _values = new string[100]; // Backing store

public string this[int number]
{
get
{
// This is invoked when accessing Layout instances with the [ ].
if (number >= 0 && number < _values.Length)
{
// Bounds were in range, so return the stored value.
return _values[number];
}
// Return an error string.
return "Error";
}
set
{
// This is invoked when assigning to Layout instances with the [ ].
if (number >= 0 && number < _values.Length)
{
// Assign to this element slot in the internal array.
_values[number] = value;
}
}
}
}

class Program
{
static void Main()
{
// Create new instance and assign elements
// ... in the array through the indexer.
Layout layout = new Layout();
layout[1] = "Frank Gehry";
layout[3] = "I. M. Pei";
layout[10] = "Frank Lloyd Wright";
layout[11] = "Apollodorus";
layout[-1] = "Error";
layout[1000] = "Error";

// Read elements through the indexer.
string value1 = layout[1];
string value2 = layout[3];
string value3 = layout[10];
string value4 = layout[11];
string value5 = layout[50];
string value6 = layout[-1];

// Write the results.
Console.WriteLine(value1);
Console.WriteLine(value2);
Console.WriteLine(value3);
Console.WriteLine(value4);
Console.WriteLine(value5); // Is null
Console.WriteLine(value6);
}
}


Output:

Frank Gehry
I. M. Pei
Frank Lloyd Wright
Apollodorus
(null)
Error