473,386 Members | 1,819 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,386 software developers and data experts.

New to c, simple question:

Should i use string or String ?
string seems 'old-fashioned' (ansi?) c string while String is depending on
the using/system stuff.
They might be equal and can be intermixed?

Maybe it's an ansi and unicode matter?

Other vartypes are there as well like byte[] and Byte[]

Feb 20 '06 #1
7 998
Hi,

Edwin Knoppert wrote:
Should i use string or String ?
string seems 'old-fashioned' (ansi?) c string while String is depending on
the using/system stuff.
They might be equal and can be intermixed?

Maybe it's an ansi and unicode matter?

Other vartypes are there as well like byte[] and Byte[]


string is a value type, while String is an object. In other words, when
you use String, you get all the methods that the object defines, for
example Split, Trim, etc...

In C#, it doesn't make a big difference is you use String or string,
because the value type is automatically casted to the Object if needed.
In my experience, having discussed this with a few fellow programmers,
this is more of a "philosophy" question. I prefer to use String
consistently, because I dislike the idea of "automatic cast". But many
of my colleagues work with string only.

HTH,
Laurent
--
Laurent Bugnion, GalaSoft
Software engineering: http://www.galasoft-LB.ch
Private/Malaysia: http://mypage.bluewin.ch/lbugnion
Support children in Calcutta: http://www.calcutta-espoir.ch
Feb 20 '06 #2
Ah, i see, imo it's preferrable to use the objects then.
(Unless you want some optimized for speed stuff i guess)

Thanks,

"Laurent Bugnion" <ga*********@bluewin.ch> schreef in bericht
news:dt**********@zrha118x.zrh.siemens.ch...
Hi,

Edwin Knoppert wrote:
Should i use string or String ?
string seems 'old-fashioned' (ansi?) c string while String is depending
on the using/system stuff.
They might be equal and can be intermixed?

Maybe it's an ansi and unicode matter?

Other vartypes are there as well like byte[] and Byte[]


string is a value type, while String is an object. In other words, when
you use String, you get all the methods that the object defines, for
example Split, Trim, etc...

In C#, it doesn't make a big difference is you use String or string,
because the value type is automatically casted to the Object if needed. In
my experience, having discussed this with a few fellow programmers, this
is more of a "philosophy" question. I prefer to use String consistently,
because I dislike the idea of "automatic cast". But many of my colleagues
work with string only.

HTH,
Laurent
--
Laurent Bugnion, GalaSoft
Software engineering: http://www.galasoft-LB.ch
Private/Malaysia: http://mypage.bluewin.ch/lbugnion
Support children in Calcutta: http://www.calcutta-espoir.ch

Feb 20 '06 #3
Hi,

Edwin Knoppert wrote:
Ah, i see, imo it's preferrable to use the objects then.
(Unless you want some optimized for speed stuff i guess)

Thanks,


That was part of the discussion too. IMHO, since the .NET environment is
not really fast anyway (compared to native code), it's not really an issue.

HTH,
Laurent
--
Laurent Bugnion, GalaSoft
Software engineering: http://www.galasoft-LB.ch
Private/Malaysia: http://mypage.bluewin.ch/lbugnion
Support children in Calcutta: http://www.calcutta-espoir.ch
Feb 20 '06 #4
> Should i use string or String ?
string seems 'old-fashioned' (ansi?) c string while String is depending on
the using/system stuff.
They might be equal and can be intermixed?

Maybe it's an ansi and unicode matter?

Other vartypes are there as well like byte[] and Byte[]


in C# "string" is simply an alias for System.String. They are
completely identical and interchangeable.
Same goes for int / System.Int32, byte / System.Byte, bool /
System.Boolean, object / System.Object and others.

Hans Kesting
Feb 20 '06 #5
> Hi,

Edwin Knoppert wrote:
Should i use string or String ?
string seems 'old-fashioned' (ansi?) c string while String is depending on
the using/system stuff.
They might be equal and can be intermixed?

Maybe it's an ansi and unicode matter?

Other vartypes are there as well like byte[] and Byte[]


string is a value type, while String is an object. In other words, when you
use String, you get all the methods that the object defines, for example
Split, Trim, etc...

In C#, it doesn't make a big difference is you use String or string, because
the value type is automatically casted to the Object if needed. In my
experience, having discussed this with a few fellow programmers, this is more
of a "philosophy" question. I prefer to use String consistently, because I
dislike the idea of "automatic cast". But many of my colleagues work with
string only.

HTH,
Laurent


NO, "string" and "String" (or "System.String") are *identical*. Try
"string.Split", works just as well as "String.Split".
"string" is simply an alias for System.String. It doesn't matter (just
a case of personal preference) which form you use. There is *no*
automatic casting involved.
And "String" (or "string") is *always* a reference type, it's just that
sometimes it seems to act like a value-type.

example code:

public class MyClass
{
public static void Main()
{
string s = "First value";
Console.WriteLine(s);
ChangeIt(s);
Console.WriteLine(s);

}

private static void ChangeIt(string str)
{
str = "Other value";
}

}

Will output "First value" twice, which is similar to what you would
expect if "int" parameters. But in this case it is because with the
str = "Other value"; statement, you are not assigning a different value
to the same string-object that the parameter was a reference to, you
are changing the reference s to point to a different string (-object).
As you passed the reference itself by value, this change is not seen
outside the ChangeIt method.

Hans Kesting
Feb 20 '06 #6
> string is a value type, while String is an object.
Not true. Both are object type and both refers to System.String regardless
of what you use.
"Laurent Bugnion" <ga*********@bluewin.ch> wrote in message
news:dt**********@zrha118x.zrh.siemens.ch...
Hi,

Edwin Knoppert wrote:
Should i use string or String ?
string seems 'old-fashioned' (ansi?) c string while String is depending
on the using/system stuff.
They might be equal and can be intermixed?

Maybe it's an ansi and unicode matter?

Other vartypes are there as well like byte[] and Byte[]


string is a value type, while String is an object. In other words, when
you use String, you get all the methods that the object defines, for
example Split, Trim, etc...

In C#, it doesn't make a big difference is you use String or string,
because the value type is automatically casted to the Object if needed. In
my experience, having discussed this with a few fellow programmers, this
is more of a "philosophy" question. I prefer to use String consistently,
because I dislike the idea of "automatic cast". But many of my colleagues
work with string only.

HTH,
Laurent
--
Laurent Bugnion, GalaSoft
Software engineering: http://www.galasoft-LB.ch
Private/Malaysia: http://mypage.bluewin.ch/lbugnion
Support children in Calcutta: http://www.calcutta-espoir.ch

Feb 20 '06 #7
Hi,

Hans Kesting wrote:
NO, "string" and "String" (or "System.String") are *identical*. Try
"string.Split", works just as well as "String.Split".
"string" is simply an alias for System.String. It doesn't matter (just a
case of personal preference) which form you use. There is *no* automatic
casting involved.
And "String" (or "string") is *always* a reference type, it's just that
sometimes it seems to act like a value-type.


<example stripped>

Mmmh I stand corrected! I learned something today. Apologies to the
original poster for misleading comments.

Laurent
--
Laurent Bugnion, GalaSoft
Software engineering: http://www.galasoft-LB.ch
Private/Malaysia: http://mypage.bluewin.ch/lbugnion
Support children in Calcutta: http://www.calcutta-espoir.ch
Feb 20 '06 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: Patchwork | last post by:
Hi Everyone, Please take a look at the following (simple and fun) program: //////////////////////////////////////////////////////////////////////////// ///////////// // Monster Munch, example...
1
by: Proteus | last post by:
Any help appreciated on a small perl project I need to write for educator/teaching purposes. I have not programmed perl for some time, need to get up to speed, maybe some kind souls hrere will help...
2
by: Raskolnikow | last post by:
Hi! I have a very simple problem with itoa() or the localtime(...). Sorry, if it is too simple, I don't have a proper example. Please have a look at the comments. struct tm *systime; time_t...
3
by: Peter | last post by:
Hello Thanks for reviewing my question. I would like to know how can I programmatically select a node Thanks in Advanc Peter
7
by: abcd | last post by:
I am trying to set up client machine and investigatging which .net components are missing to run aspx page. I have a simple aspx page which just has "hello world" printed.... When I request...
4
by: dba_222 | last post by:
Dear Experts, Ok, I hate to ask such a seemingly dumb question, but I've already spent far too much time on this. More that I would care to admit. In Sql server, how do I simply change a...
14
by: Giancarlo Berenz | last post by:
Hi: Recently i write this code: class Simple { private: int value; public: int GiveMeARandom(void);
30
by: galiorenye | last post by:
Hi, Given this code: A** ppA = new A*; A *pA = NULL; for(int i = 0; i < 10; ++i) { pA = ppA; //do something with pA
10
by: Phillip Taylor | last post by:
Hi guys, I'm looking to develop a simple web service in VB.NET but I'm having some trivial issues. In Visual Studio I create a web services project and change the asmx.vb file to this: Imports...
17
by: Chris M. Thomasson | last post by:
I use the following technique in all of my C++ projects; here is the example code with error checking omitted for brevity: _________________________________________________________________ /*...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.