Click here to Skip to main content
15,892,005 members
Home / Discussions / C#
   

C#

 
GeneralRe: c++ const in c# (I assume, once again) Pin
harold aptroot25-Aug-17 8:41
harold aptroot25-Aug-17 8:41 
GeneralRe: c++ const in c# (I assume, once again) Pin
User 1106097925-Aug-17 8:47
User 1106097925-Aug-17 8:47 
AnswerRe: c++ const in c# (I assume, once again) Pin
jschell25-Aug-17 9:40
jschell25-Aug-17 9:40 
GeneralRe: c++ const in c# (I assume, once again) Pin
User 1106097925-Aug-17 9:50
User 1106097925-Aug-17 9:50 
AnswerRe: c++ const in c# (I assume, once again) Pin
Pete O'Hanlon25-Aug-17 12:19
mvePete O'Hanlon25-Aug-17 12:19 
GeneralRe: c++ const in c# (I assume, once again) Pin
User 1106097925-Aug-17 12:47
User 1106097925-Aug-17 12:47 
AnswerRe: c++ const in c# (I assume, once again) Pin
Gerry Schmitz26-Aug-17 8:54
mveGerry Schmitz26-Aug-17 8:54 
AnswerRe: c++ const in c# (I assume, once again) Pin
Bernhard Hiller28-Aug-17 3:39
Bernhard Hiller28-Aug-17 3:39 
Beyond the protected and internal modifiers mentioned by others which are useful when the "full access" tasks remain inside the same dll, I'd use an approach similar to your first approach when both access types are needed in other dlls also. In short, it is called "interface segregation" and is the I of SOLID.
C#
public interface IReadOnlySpectrum
{
    double this[int lambda] { get; }
}
public interface IWritableSpectrum : IReadOnlySpectrum
{
    new double this[int lambda] { get; set; }
}
public class Spectrum : IWritableSpectrum {...}
Depending on the required access level, pass the instance as an IReadOnlySpectrum or as an IWritableSpectrum. It is true that a cast from IReadOnlySpectrum to IWritableSpectrum is possible, but well, if you do so, you should know that you sacrifice the safety introduced with interface segregation.
Also take care when it comes to reference types instead of value types like double: though the list may know be write-protected, its items are not. You may need to apply the double-interface trick above again with those types.
GeneralRe: c++ const in c# (I assume, once again) Pin
User 1106097928-Aug-17 3:54
User 1106097928-Aug-17 3:54 
QuestionCreate .NET COM dll as existing C++ COM Pin
MrKBA24-Aug-17 22:38
MrKBA24-Aug-17 22:38 
AnswerRe: Create .NET COM dll as existing C++ COM Pin
Pete O'Hanlon24-Aug-17 22:44
mvePete O'Hanlon24-Aug-17 22:44 
GeneralRe: Create .NET COM dll as existing C++ COM Pin
MrKBA25-Aug-17 0:41
MrKBA25-Aug-17 0:41 
GeneralRe: Create .NET COM dll as existing C++ COM Pin
Pete O'Hanlon25-Aug-17 0:57
mvePete O'Hanlon25-Aug-17 0:57 
GeneralRe: Create .NET COM dll as existing C++ COM Pin
User 1106097925-Aug-17 9:25
User 1106097925-Aug-17 9:25 
GeneralRe: Create .NET COM dll as existing C++ COM Pin
MrKBA27-Aug-17 22:20
MrKBA27-Aug-17 22:20 
QuestionInterface extensions: Guaranteed maintenance problem? Pin
jschell24-Aug-17 6:58
jschell24-Aug-17 6:58 
AnswerRe: Interface extensions: Guaranteed maintenance problem? Pin
Dave Kreskowiak24-Aug-17 9:33
mveDave Kreskowiak24-Aug-17 9:33 
AnswerRe: Interface extensions: Guaranteed maintenance problem? Pin
Bernhard Hiller24-Aug-17 21:45
Bernhard Hiller24-Aug-17 21:45 
QuestionString Format With $ Pin
Kevin Marois24-Aug-17 5:49
professionalKevin Marois24-Aug-17 5:49 
AnswerRe: String Format With $ Pin
Pete O'Hanlon24-Aug-17 6:46
mvePete O'Hanlon24-Aug-17 6:46 
GeneralRe: String Format With $ Pin
Kevin Marois24-Aug-17 6:47
professionalKevin Marois24-Aug-17 6:47 
AnswerRe: String Format With $ Pin
Bernhard Hiller24-Aug-17 21:50
Bernhard Hiller24-Aug-17 21:50 
PraiseRe: String Format With $ Pin
Richard Deeming25-Aug-17 2:04
mveRichard Deeming25-Aug-17 2:04 
GeneralRe: String Format With $ Pin
Bernhard Hiller25-Aug-17 2:30
Bernhard Hiller25-Aug-17 2:30 
GeneralRe: String Format With $ Pin
BillWoodruff26-Aug-17 5:20
professionalBillWoodruff26-Aug-17 5:20 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.