• c# 中几个关于string问题


    1、string是一个应用类型,而不是值类型;为什么用起来很像值类型?因为微软对其做了特殊处理。

    2、

     1 using System;
     2 
     3 namespace testForString
     4 {
     5     class Program
     6     {
     7         class Abc
     8         {
     9             public string A { get; set; }
    10 
    11             public DateTime D { get; set; }
    12         }
    13 
    14         static void Main(string[] args)
    15         {
    16             Abc abc = new Abc();
    17 
    18 
    19             string str = null + "acb";
    20 
    21             Console.ReadKey();
    22         }
    23     }
    24 }

    以上代码中abc变量中abc.A为null,abc.D不是空而是1年1月1日0点0分0秒000。

      

     string str = null + "acb";

    代码并没有抛出异常。而是str被赋值为“abc”

    3、如果是这样的一句话,

     string str; 

    string abc=str+null; 

    运行时,会编译不通过.

    4、运行以下代码:

    1 string str=null;
    2 
    3 string abc=str+null;
    4 
    5 Console.WriteLine(abc.toString());

    不会抛出任何一个异常,在第二行中abc已经被赋值为“”。

    5.运行以下一段代码: 

     1 using System;
     2 
     3 namespace testForString
     4 {
     5     class Program
     6     {
     7         static void Main(string[] args)
     8         {
     9             string str = null;        
    10 
    11             Console.WriteLine(str.ToString());
    12 
    13             Console.ReadKey();
    14         }
    15     }
    16 }

     将会抛出错误:System.NullReferenceException。

    能完全答对的举手!!!

    java中会是什么样子呢?

    1         String str=null;
    2         String str1=str+null;
    3          
    4         System.out.println(str1+"abc");
    5         
    6         System.out.println(str1.toString());
    7         System.out.println(str.toString());

    第4行打印出:nullnullabc

    第6行打印出:nullnull

    第7行抛出空指针错误:

    Exception in thread "main" java.lang.NullPointerException
    at cn.test.timer.TestTimer.main(TestTimer.java:xx)

  • 相关阅读:
    python操作adb代码
    android sdcard 权限管理策略研究
    glom模块的使用(二)
    爬虫错误汇总
    微博展开全文获取
    数据清洗之微博内容清洗
    Esxi5-管理平台vcenter5.0_数据库迁移流程
    migrating-vcenter-database-express-to-sql-2008-r2
    Centos生成SSL证书的步骤
    找到一篇关于2.4/5G信道的新介绍
  • 原文地址:https://www.cnblogs.com/yy3b2007com/p/5565652.html
Copyright © 2020-2023  润新知