PDA

View Full Version : سوال: ارسال یک پارامتر از نوع کلاس به یک متد



saeen
شنبه 27 تیر 1388, 23:22 عصر
سلام
در برنامم متدی دارم که به این صورت تعریف شده


public void GetData(Person prmP)
{
if (this.ShowDialog() == DialogResult.OK)
{
prmP.FullName = "ali";
}
}


Person یک کلاسه که یه فیلد به اسم FullName داره و من میخوام اون را مقدار دهی کنم. اما کامپایلر به خط اول یعنی همون تعریف متد ایراد میگیره

خطایی که میگیره اینه:


Error 1 Inconsistent accessibility: parameter type 'Project1.Person' is less accessible than method 'Project1.frmListPerson.GetData(Project1.Person)' F:\Project\Project1\frmListPerson.cs 92 22 Project1

Ali_Mor
یک شنبه 28 تیر 1388, 00:11 صبح
http://bytes.com/groups/net-c/452194-inconsistent-accessibility
http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/2b6b2c53-4497-4f26-bec1-0aae5073bca9

majid325
یک شنبه 28 تیر 1388, 00:52 صبح
ممکن هست فضای نامی که کلاس Person توش تعریف شده رو معرفی نکرده باشی

saeen
دوشنبه 29 تیر 1388, 12:43 عصر
مشکل از کلمه public ه اگه من اون را به private تغییر بدم دیگه ایراد نمی گیره . من حتی اومدن به این صورت هم متد را تغییر دادم


private Person myP1()
{
Person p=new Person();
p.FullName="ali";
return p;
}


درواقع متدی تعریف کردم که پارامتر نداره ولی نوع خروجی اون از نوع کلاس Person ست. در این حالت هم که سطح دسترسی private ه مشکلی نداره ولی اگه public کنم باز مشکل داره.
کلا من چه جور می تونم متدی با سطح دسترسی public بدون خروجی (void)با پارامترهایی از نوع کلاس یا متدی بدون پارامتر و با خروجی کلاس تعریف کنم