PDA

View Full Version : سوال: نوع جدید داده برگشتی



s.a.s.a.n
جمعه 04 بهمن 1392, 19:48 عصر
سلام به همه . من یه کلاسی نوشتم . فرض کنید با نام hello

حالا یه تابع که می نویسم ( تابع خارج از کلاس هست و متعلق به کلاس نیست ) می خوام نوع برگشتی تابع hello باشه . ولی ارور میده . یعنی نمیشه نوع برگشتی یک تابع object جدید باشه ؟

sagggad
جمعه 04 بهمن 1392, 19:50 عصر
با سلام
من درست متوجه منظورتون نشدم
اما این رو میدونم که
مثلا
ما یک تابع داریم به اسم Split .
حالا شما اگر یه پروژه به اسم Split بسازید و بخواید از این تابع در اون پروژه استفاده کنید ارور میده
چون نمیتونه نام تابع رو با نام پروژه تطبیق بده

s.a.s.a.n
شنبه 05 بهمن 1392, 09:14 صبح
نه بحث هم نامی پروژه و تابع نیست . برای مثال ببینید :

class example
{
.
.
.
}
حالا من میام یک تابع می نویسم که نوع برگشتی تابع example باشه و ارور میده

milad_d993
شنبه 05 بهمن 1392, 11:12 صبح
حتما یه جا اشتباه کردی؛ وگرنه مشکلی نباید داشته باشه.
تو کلاس دفترچه تلفن یه تابع به نام Search هست که خروجیش personInfo هست. درست هم کار میکنه...

class personinfo
{
string _name;
string _number;

public string Name
{
set
{
_name = value;
}
get
{
return _name;
}

}
public string Number
{
set
{
_number = value;
}
get
{
return _number;
}
}

}

class phoneBook
{
int _memorySize = 200;
int count = 0;
personinfo [] person = new personinfo[_memorySize];

public int Add(personinfo p)
{
if (count < _memorySize)
{
if (nameSearch(p.Name))
{
person[count] = p;
count++;
return 1;
}
return -1;
}
return 0;
}
bool nameSearch(string name)
{
foreach (var a in person)
if (a.Name == name)
return false;

return true;
}

public bool Dell(string n)
{
bool s = false;
for (int i = 0; i < count; i++)
{
if (person[i].Name == n)
s = true;
if (s == true && i < count - 1)
person[i] = person[i + 1];
}
if (s)
{
count--;
return true;
}
return false;
}

public personinfo Search(string n)
{
int c = 0;
foreach (var a in person)
if (a.Name.StartsWith(n))
C++‎‎‎;

personinfo[] result = new personinfo[c];
foreach (var a in person)
if (a.Name.StartsWith(n))
result[0] = a;

return result;
}

public int MemorySize
{
get
{
return _memorySize;
}

}
public int FreeMemory
{
get
{
return 100-((count * 100) / _memorySize);
}
}
}