What is the Difference between read only and constant
variables?
Answer Posted / dilip tiwari
For Eg I have used constant(public const int X = 123;
)in my assembly and compiled that assembly. After compiling
I haved used the .dll in myapplication then the value of X
is 123.After some time recognised that value of X is 234
then to make the changes I have to again recompile my
assembly and main application. But If I use redonly then I
have to just compile my assembly and the reference of new
dll in my main application. No need to recompile my main
application
using System;
public class A
{
public const int X = 123;
}
csc /t:library /out:A.dll A.cs
using System;
public class MyTest
{
public static void Main()
{
Console.WriteLine("X value = {0}", A.X);
}
}
csc /r:A.dll MyTest.cs
To run: mytest
The output :
X value = 123
Then you install the program into your client computer. It
runs perfectly.
One week later, you realised that the value of X should
have been 812 instead of 123.
What you will need to do is to
1] Compile A (after making the changes)
csc /t:library /out:A.dll A.cs
2] Compile your application again
csc /r:A.dll MyTest.cs
This can be a little troublesome. However, if you used the
readonly instead of const,the situation will be slightly
different. You start with
using System;
public class A
{
public static readonly int X = 123;
}
csc /t:library /out:A.dll A.cs
using System;
public class MyTest
{
public static void Main()
{
Console.WriteLine("X value = {0}", A.X);
}
}
csc /r:A.dll MyTest.cs
To run: mytest
The output :
X value = 123
Now you realised, you have made a mistake. All you need to
do is
1] Recompile A.cs (after making changes)
csc /t:library /out:A.dll A.cs
2] Copy the new dll to the client computer and it should
run perfectly. There is no need to recompile your
application MyTest.cs here
| Is This Answer Correct ? | 0 Yes | 0 No |
Post New Answer View All Answers
What is difference between string and string builder?
What do you mean by thread safe in c#?
Name some string escape sequences in c#.
How does substring work in c#?
How can you access a private method of a class?
You are designing a user control. You created new property called backgroundimage which is of type image. You wanted to disable storing this property in the user’s form. How to achieve this?
What is the advantage of singleton class?
Is c# strongly typed?
What is a trace and asset? Explain some differences?
What is difference between list and dictionary in c#?
Give an example of a ctype.
Can struct have constructor c#?
Why do we use threads in c#?
Explain about Threading Types.
What is class and object c#?