C# خطأ ترجمة: "X لا يمكن الوصول إليه بسبب مستوى الحماية"

StackOverflow https://stackoverflow.com/questions/3595380

سؤال

عندما يعطي C# هذا الخطأ التجميع؟

لا يمكن الوصول إلى "المفضل.

private void Form1_Load(object sender, EventArgs e)
{
    Favorites objFavorites = new Favorites(); 

    objFavorites.ScanFavorites();
    foreach (WebFavorite objWebFavorite in objFavorites.FavoriteCollection)
    {
        ListViewItem objListViewItem = new ListViewItem();
        objListViewItem.Text = objWebFavorite.Name;
        objListViewItem.SubItems.Add(objWebFavorite.Url);
        lstFavorites.Items.Add(objListViewItem);
    }
}
هل كانت مفيدة؟

المحلول

هذا الخطأ في وقت الترجمة يعني أن الخاصية التي تحاول الوصول إليها ليست كذلك public والطريقة الوحيدة للوصول إليها هي إما عن طريق تعديلها الوصول الى المعدل أو باستخدام انعكاس.

نصائح أخرى

عندما لا يكون من المرئي بما يكفي للوصول: إذا ، على سبيل المثال ، يكون الفصل في مشروع آخر والرؤية interal أو أقل (protected أو private) ، لن تتمكن من استخدامه. سيتعين عليك تغييره إلى الأماكن العامة في مثل هذه الحالة:

public class FavoriteCollection
{
...
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top