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
Write a syntax for writing a event delegate.
What is difference between .net and c#?
When should we use delegates in c#?
Can I use ReaderWriterLock instead of Monitor.Enter/Exit for Threading?
what is boxing and unboxing?can we initialize unboxing directly?
In which order the destructor is called for an inherited class?
How does inheritance work in c#?
What is parameter c#?
Can enum be null c#?
Can the nested class access, the containing class. Give an example?
What is the difference between var and dynamic types in c# 4.0?
What are data types examples?
Explain the difference between user control and custom control. Also, explain their use.
What is the difference between struct and class in c#?
What's the difference between the debug class and trace class? Documentation looks the same.