The Game Programming Wiki The Game Programming Wiki
The Official Game Programming Wiki Forums
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

What is the equivalant of a 'friend' keyword in C Sharp?

 
Post new topic   Reply to topic    The Game Programming Wiki Forum Index -> .NET Game Programming
Author Message
complete
Gold Star Poster!


Joined: 20 Dec 2005
Posts: 109

PostPosted: Thu Jan 15, 2009 7:12 pm    Post subject: What is the equivalant of a 'friend' keyword in C Sharp? Reply with quote

What is the equivalant of a 'friend' keyword in C Sharp?

How do I use the 'internal' keyword?

I have read that 'internal' keyword is a replacement for 'friend' in C#.

I am using a dll in my C# project that I have the source code for and yet I do not want to modify the existing code. I have inherited the class and I can use my inherited class any way I want. The problem is that most of the code in the parent class has private methods. Will using a friend somehow make it possible to access or call these private methods?

I have been dold that if I have inherited from a base class, I should be able to access all the protected methods from the inheriting class. Therefore I should not need any "friend" equivalent. But does that also hold true for private methods?
Back to top
View user's profile Send private message
Machaira
King Code Monkey


Joined: 01 Sep 2004
Posts: 10837
Location: Abingdon, MD

PostPosted: Thu Jan 15, 2009 8:35 pm    Post subject: Reply with quote

Private members of a class can only be called from inside that class, not from inheriting classes. You need to declare them protected for that.

internal is only for code within the same assembly so doesn't apply to your situation.
_________________
Bored? Head on over to my blog and see what I'm up to.

Microsoft XNA MVP
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger MSN Messenger
workmad3
Bibliotherapist


Joined: 21 Dec 2005
Posts: 6274
Location: Manchester, UK

PostPosted: Fri Jan 16, 2009 12:07 am    Post subject: Reply with quote

I think you may be able to call the methods using hacky reflection techniques... I wouldn't advise it though. If something is private it is most likely for a reason. If you can change it but don't want to, then ask yourself why not (there should be a good reason for them being private after all). If you can't change it because you don't have the source, then ask yourself why you think you know how to call it? It's not part of the documented interface, you could screw up anything by doing so.

Access modifiers shouldn't be ignored.
_________________
God must love stupid people, he made so many.
theraje: 'God doesn't love stupid people, they're just easier to make'
http://sharedillusions.blogspot.com
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    The Game Programming Wiki Forum Index -> .NET Game Programming All times are GMT
Page 1 of 1

 



Hosting donated by Grubby Games.

Powered by phpBB © 2001, 2002 phpBB Group