C#中string类型是啥类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中string类型是啥类型相关的知识,希望对你有一定的参考价值。

参考技术A

是字符串字符串数据类型。

string是C++、java、VB等编程语言中的字符串,字符串是一个特殊的对象,属于引用类型。 在java、C#中。

String类对象创建后,字符串一旦初始化就不能更改,因为string类中所有字符串都是常量,数据是无法更改,由于string对象的不可变,所以可以共享。

对String类的任何改变,都是返回一个新的String类对象。 C++标准库中string类以类型的形式对字符串进行封装,且包含了字符序列的处理操作。

String类是不可变(final)的,对String类的任何改变,都是返回一个新的String类对象。这样的话把String类的引用传递给一个方法,该方法对String的任何改变,对原引用指向的对象没有任何影响,这一点和基本数据类型相似。

扩展资料

应用:

可以用 (string) 标记或者strval()函数将一个值转换为字符串。当某表达式需要字符串时,字符串的转换会在表达式范围内自动完成。

例如当使用echo()或者print()函数时,或者将一个变量值与一个字符串进行比较的时候。阅读手册中有关类型和类型戏法中的部分有助于更清楚一些。参见settype()。

布尔值TRUE将被转换为字符串 "1",而值FALSE将被表示为 ""(即空字符串)。这样就可以随意地在布尔值和字符串之间进行比较。

整数或浮点数数值在转换成字符串时,字符串由表示这些数值的数字字符组成(浮点数还包含有指数部分)。

数组将被转换成字符串 "Array",因此无法通过echo()或者print()函数来输出数组的内容。请参考下文以获取更多提示。

对象将被转换成字符串 "Object"。如果因为调试需要,需要将对象的成员变量打印出来,请阅读下文。如果希望得到该对象所依附的类的名称,请使用函数get_class()。自 php 5 起,如果合适可以用 __toString() 方法。

资源类型总是以 "Resource id #1" 的格式被转换成字符串,其中 1 是 php 在运行时给资源指定的唯一标识。如果希望获取资源的类型,请使用函数get_resource_type()。

参考资料来源:百度百科-string

c# 中的可空类型是啥?

【中文标题】c# 中的可空类型是啥?【英文标题】:What is nullable type in c#?c# 中的可空类型是什么? 【发布时间】:2022-01-13 21:02:44 【问题描述】:

什么时候我们必须在 C#.net 中使用 nullable 类型?谁能举例说明一下。

【问题讨论】:

c-sharpcorner.com/UploadFile/PashuSX/… 【参考方案1】:

Nullable 类型(When to use nullable types) 是可以将 null 作为值的值类型。它的默认值为null,这意味着您没有为其赋值。值类型的示例有 int、float、double、DateTime 等。这些类型具有这些默认值

int x = 0;
DateTime d = DateTime.MinValue;
float y = 0;

对于 Nullable 替代方案,上述任何一项的默认值为 null

int? x = null; //no value
DateTime? d = null; //no value

这使它们表现得像引用类型,例如对象,字符串

string s = null;
object o = null;

它们在处理来自数据库的值时非常有用,当从您的表返回的值是NULL 时。想象一下您的数据库表中的一个整数值可能为 NULL,如果 c# 变量不可为空 - 常规整数,则只能用 0 表示。

另外,想象一个EndDate 列,其值直到将来的实际时间才确定。这可以在数据库中设置为 NULL,但您需要一个可为空的类型来将其存储在 C#中

DateTime StartDate = DateTime.Today;
DateTime EndDate? = null; //we don't know yet

【讨论】:

【参考方案2】:

来自:http://msdn.microsoft.com/en-us/library/1t3y8s4s(v=vs.80).aspx Nullable 类型是 System.Nullable 结构的实例。可空类型可以表示其基础值类型的正常值范围,外加一个额外的空值。例如,一个 Nullable,发音为“Nullable of Int32”,可以分配从 -2147483648 到 2147483647 的任何值,或者可以分配空值。可以为 Nullable 分配值 true 或 false,或 null

class NullableExample

    static void Main()
    
        int? num = null;
        if (num.HasValue == true)
        
            System.Console.WriteLine("num = " + num.Value);
        
        else
        
            System.Console.WriteLine("num = Null");
        

        //y is set to zero
        int y = num.GetValueOrDefault();

        // num.Value throws an InvalidOperationException if num.HasValue is false
        try
        
            y = num.Value;
        
        catch (System.InvalidOperationException e)
        
            System.Console.WriteLine(e.Message);
        
    

【讨论】:

【参考方案3】:

什么时候我们必须在 C#.net 中使用可为空的类型?

假设有一个整数变量id 代表一个特定的id

您可以存储144 或其他任何内容。但是如果您不知道 id 怎么办。您不能只存储-10。您可能正在考虑分配null但通常null 不能分配给值类型。

int id=null;//error

Nullable type 使您能够做到这一点。


int,double,char..这样的值类型不能表示为NULL值。

要在值类型中表示null,您必须使用nullable type..

表示为值类型后跟?

int? id=null;

翻译成

Nullable<int> id=new Nullable<int>();

可空类型的默认值为null

【讨论】:

【参考方案4】:

Nullable 类型是 C#2.0 中引入的新概念,它允许用户将 null 值分配给 C# 语言的原始数据类型。这里重要的是 Nullable 类型是 Structure 类型。

博文:Nullable type -- Why we need Nullable types in programming language ?

【讨论】:

有点不准确,我想说Nullable<T> 是一个包装器类型,它允许值类型的空值(或“可选”)语义。它不仅适用于原始类型,而且将null 分配给可空类型实际上是语法糖。 null Nullable<T> 并不是真正意义上的 null 请先在 Blogspot 上修正您的语法,然后再将其链接到 SO。如果因为语法不好没有人能理解你的解释,那还有什么意义呢?

以上是关于C#中string类型是啥类型的主要内容,如果未能解决你的问题,请参考以下文章

unit是啥数据类型?C#中

C#如何将枚举类(enum)型转换成字符(string)类型

C# string类型和byte[]类型相互转换

C# string类型遇到的两个问题

c#中 Double num1 = Convert.ToDouble(this.textBox1.Text.ToString())是啥意思,里面的()是啥意思

C#语言——类