A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 葛杨杨 中级黑马   /  2013-5-21 05:02  /  1846 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 葛杨杨 于 2013-5-23 14:49 编辑

帮忙纠正一下,下面是错误提示和代码:

错误        1        无法将类型“int”隐式转换为“string”        D:\C语言代码\C语言从入门到精通\值类型与引用类型的区别\Program.cs        26        60        值类型与引用类型的区别
错误        2        无法将类型“int”隐式转换为“string”        D:\C语言代码\C语言从入门到精通\值类型与引用类型的区别\Program.cs        27        57        值类型与引用类型的区别
错误        3        无法将类型“string”隐式转换为“int”        D:\C语言代码\C语言从入门到精通\值类型与引用类型的区别\Program.cs        28        21        值类型与引用类型的区别
错误        4        无法将类型“int”隐式转换为“string”        D:\C语言代码\C语言从入门到精通\值类型与引用类型的区别\Program.cs        29        25        值类型与引用类型的区别
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;

  5. namespace 值类型与引用类型的区别
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             ReferenceAndValue.Demostration();
  12.             Console.ReadLine();
  13.         }
  14.     }

  15.     public class stamp
  16.     {
  17.         public string Name{ get; set; }
  18.         public string Age{ get; set;}
  19.     }
  20.     public static class ReferenceAndValue
  21.     {
  22.         public static void Demostration()
  23.         {
  24.             stamp Stamp_1 = new stamp{Name="Premiere", Age=25};
  25.             stamp Stamp_2 = new stamp{Name="Again", Age=47};
  26.             int age=Stamp_1.Age;
  27.             Stamp_1.Age=22;
  28.             stamp gurn =Stamp_2;
  29.             Stamp_2.Name="Again Amend";
  30.             Console.WriteLine("Stamp_1's age:{0}", Stamp_1.Age);
  31.             Console.WriteLine("age' value:{0}",age);
  32.             Console.WriteLine("Stamp_2's name: {0}",Stamp_2.Name);
  33.             Console.WriteLine("gurn's name:{0}",gurn.Name);
  34.         }
  35.     }
  36. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

4 个回复

倒序浏览
在ReferenceAndValue类中,你每次为stamp类的对象的Age属性赋值都赋了int类型的值,而stamp类中定义的Age属性是string类型的,int类型和string型是不能隐式转换的。(年龄一般定义为int类型)
  1. public class stamp

  2.     {
  3.         public string Name{ get; set; }

  4.         public string Age{ get; set;}

  5.     }
复制代码
还有给你个建议,学编程最好从开始就养成好的编程习惯,类名一般用Pascal命名法,对象用camel命名法

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
stamp 定义属性的时候,public int Age{set;get;}
前后要一致,后边用int。属性就要是int
年龄一般是int,
static void Main(string[] args)

      {

           ReferenceAndValue.Demostration();

            Console.ReadLine();

      }
主方法里你为什么后边会跟一个ReadLine?不是ReadKey()吗?

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
你的问题很简单,你太大意了!
  public class stamp
    {
        public string Name { get; set; }
        public string Age { get; set; }   //上面已经有同学说了,把string改成int就绝对没问题了!
    }
楼主加油!

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
public string Age { get; set; } 年龄一般都是int类型的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马