For Private Class, should i declare my property As Public Or Friend (internal in c#)? My Private Class is not accessible by any other classes except it parent class.
Access level of property in Private Class
845 Views Asked by san louise At
2
There are 2 best solutions below
0
Arin Ghazarian
On
Since you class (Nested one) is private the only one who can access it is its container (the base or parent class). In this case public or internal (Friend in VB) doesn't make any difference, since the only one who can access the nested class is it's parent.
In general, if some day you want to change the access modifier to public then its good to foresee it now and choose between internal and public. Its simple, if you want members of your nested class to be seen only inside the assembly where it defined, then use internal otherwise consider using public.
Related Questions in C#
- Passing arguments to main in C using Eclipse
- kernel module does not print packet info
- error C2016 (C requires that a struct or union has at least one member) and structs typedefs
- Drawing with ncurses, sockets and fork
- How to catch delay-import dll errors (missing dll or symbol) in MinGW(-w64)?
- Configured TTL for A record(s) backing CNAME records
- Allocating memory for pointers inside structures in functions
- Finding articulation point of undirected graph by DFS
- C first fgets() is being skipped while the second runs
- C std library don't appear to be linked in object file
- gcc static library compilation
- How to do a case-insensitive string comparison?
- C programming: Create and write 2D array of files as function
- How to read a file then store to array and then print?
- Function timeouts in C and thread
Related Questions in .NET
- Does compiler optimize operation on const variable and literal const number?
- What is the point of definnig Asp.net Intrinsic Objects In different places and what is the different betwen them?
- Deleting Orphans with Fluent NHibernate
- IOrderedEnumerable to vb.net IOrderedEnumerable Conversion
- What is this namespace ITypeOfObjectsBoundToListBox ? Couldn't find it
- .net rest service with JSON string and consumed with java client
- What is best way to check if any of the property of object is null or empty?
- Telerik's WPF RadColorPicker NoColorText property not working
- Possible consequences of duplicate ProgId for different classes
- How are multiple requests to Task.Run handled from a resource management standpoint?
- Optimizing C++ call from C#
- Make a per-web-application object available to Web API and SignalR controllers
- System.ComponentModel.DataAnnotations.Schema namespace conflict
- LINQ Except/Distinct based on few columns only, to not add duplicates
- Not displaying content by its URL string - absolute urls
Related Questions in VB.NET
- If...Then...Else Visual Basic 2012
- Detecting whether a mouse button is down in vb.net
- IOrderedEnumerable to vb.net IOrderedEnumerable Conversion
- vb.net Get PrivateMemorySize64 and process id sort by memory size
- Cannot insert values into database
- check validation of an expression with Regex
- VB.NET KeyNotFoundException from String()
- How do i display data that are in between 2 values in a DDL?
- VB.net: How to make original variable value fulfill 2 statements?
- Login form by using a new database, made in VB
- Get Text from listbox in VB.net
- error handing for uploading large size file
- XML Null Element Visual Basic
- Using chart and tooltip
- vb2010 Express - Operator '=' is not defined
Related Questions in ACCESS-MODIFIERS
- Unit test package protected classes without mock
- In Java, memory-wise does it make a difference to use private vs public?
- Why PHP does not have class access modifiers?
- Do constructors always have to be public?
- Can you convert an attribute to a modifier?
- Does Java have a "private protected" access modifier?
- Should methods in a web app be public or internal?
- What is assembly in C# in the context of internal access modifier?
- Is it possible to limit instances of public inner enum or class to its parent class in C#?
- How to make Aggregate Root method only accessible for a Domain Event and nothing else.
- Access modifier warning with internal class and private props
- Member Class access modifier
- Private class as return type from public method
- Why toString() cannot be a static method?
- Why does serialization have access to private constructors?
Related Questions in ACCESS-LEVELS
- How can events be handled when the class is static?
- Determining access level of a field
- Why can't extensions with protocol conformances have a specific access level?
- Protected & internal, not protected or internal
- Default security parameter in classes
- Access level of property in Private Class
- XmlSerializer treated as private, although is public
- Protection Levels and Visual Studio unit tests with C#
- How can I add user/access levels to my current login script?
- Swift: Calling function from a different target
- Enforcing Access levels in php
- C# protected field to private, add property--why?
- How to restrict access to nested class member to enclosing class?
- Displaying levels of access for different types of accounts in a UML diagram
- Java define a explicit package-private modifier
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
In general, try to keep your encapsulation intact. The relationship between your classes should be on "Need to know" basis.
Since I am not familiar with your application design,I am sure I am oversimplifying, but I would ask myself the following question:
Is the parent class the only class that needs to know the subclass? if so, It should be
private.If not, are all other entities that needs to about know the subclass are in the same project? if so, It should be
internal.If there are entities external to the project that needs to know about the subclass, it should be
public.As to the properties. If you decided to have the subclass
private, there is no use in making the propertiespublic.The only object that can have an instance of the class is the parent class, which is in the same project, and therefore
internalshould be enough for the properties.Note
C# does not have a
friendmodifier. Instead of that you can useinternal,or The-most similar-yet-less-elegant option: InternalsVisibleTo