ایندکس ها اجازه می دهند نمونه هایی از کلاس یا ساختار درست مانند آرایه ها فهرست بندی شوند. مقدار ایندکس شده را می توان بدون مشخص کردن یک عضو یا عضو نمونه ، تنظیم یا بازیابی کرد. ایندکس ها به خصوصیات شباهت دارند به جز اینکه دسترسی آنها به پارامترهایی تبدیل می شود.
using System;
class
SampleCollection<
T>
{
private T[] arr =
new T[
100];
public T
this[
int i]
{
get {
return arr[i]; }
set { arr[i] =
value; }
}
}
class
Program
{
static void Main (string[] args)
{
var stringCollection =
new SampleCollection<
string>();
stringCollection[
0] =
"Hello, World";
Console.WriteLine(stringCollection[
0]);
}
}
// مثال بالا خروجی زیر را نمایش می دهد:
// Hello, World.
abstract class Motorcycle
{
هرکسی می تواند این را صدا کند.//
public void StartEngine() {/* محل عبارات متد */ }
فقط کلاسهای مشتق شده می توانند این را صدا کنند.//
protected void AddGas(int gallons) { /* محل عبارات متد */ }
کلاسهای مشتق شده می توانند اجرای کلاس پایه را نادیده بگیرند.//
public virtual int Drive(int miles, int speed) { /* محل عبارات متد */ return 1; }
کلاسهای مشتق شده باید این کار را عملی کنند.//
public abstract double GetTopSpeed();
}
فیلدها در واقع همان متغییرها می باشند که در فضای یک کلاس یا ساختار به آن ها فلید گفته می شود.
public
class
CalendarEntry
{
// private field
private DateTime date;
// public field (Generally not recommended.)
public
string day;
// Public property exposes date field safely.
public DateTime Date
{
get
{
return date;
}
set
{
// Set some reasonable boundaries for likely birth dates.
if (
value.Year >
1900 &&
value.Year <= DateTime.Today.Year)
{
date =
value;
}
else
{
throw
new ArgumentOutOfRangeException();
}
}
}
// Public method also exposes date field safely.
// Example call: birthday.SetDate("1975, 6, 30");
public void SetDate(string dateString)
{
DateTime dt = Convert.ToDateTime(dateString);
// Set some reasonable boundaries for likely birth dates.
if (dt.Year >
1900 && dt.Year <= DateTime.Today.Year)
{
date = dt;
}
else
{
throw
new ArgumentOutOfRangeException();
}
}
public TimeSpan GetTimeSpan(string dateString)
{
DateTime dt = Convert.ToDateTime(dateString);
if (dt !=
null && dt.Ticks < date.Ticks)
{
return date - dt;
}
else
{
throw
new ArgumentOutOfRangeException();
}
}
}
ثابت ها بخش تغییر ناپذیری از محتوای کلاس هستند که در هنگام کمپایل برنامه شناسایی شده و در طول برنامه تغییر نمی کنند. بطوری که در مثال زیر مشاهده می کنید ثابت ها با کلمه const اعلان می شوند.
class Calenda
}
public const int Months = 12 ;
}