新手问下c#一些属性有关问题

新手问下c#一些属性问题
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            student st = new student();
            st.Name = "luo";
            Console.WriteLine(st.Name);
        }
    }
    public class student
    {
        public string name;
        public string Name
        {
            get 
            {
                return name;
            }
            set
            {
                name  =value ;
            }
        }
     
    }

}
1.我想问下st.Name="luo"什么意思?
2public string Name这句话不是定义一个共有的变量吗?
那public string Name
        {
            get 
            {
                return name;
            }
            set
            {
                name  =value ;
            }
        }这段什么意思啊,怎么感觉这是函数啊。?set,get,vlaue这又是什么啊??谁能告诉我下,谢谢,新手太多疑问了
------解决方案--------------------
第一个是赋值。
后面的是属性Property的设置方法。name应该是private的,Name才是Public的
------解决方案--------------------
属性本来就是两种 set、get 函数的封装。在c#,属性岂不是比你自己写函数更方便?你可以把原本针对字段进行读写的代码,毫不费力地改为针对属性的,从而扩展读写功能。
------解决方案--------------------
c#的属性,你可以理解为公共方法。
set
 {
          name  =value ;
 }
等同于
void SetName(string value)
{
    name  =value ;
}

get 
            {
                return name;
            }
等同于
string GetName()
{
       return name;
}
再来逐一回答你的问题:
1.st.Name="luo"===》因为是赋值,那执行的就是set里面的代码name  =value ;
2.public string name;与public string Name{}不一样,一个是变量一个是属性(你可以认为是方法)
3.这段什么意思啊,怎么感觉这是函数啊。?set,get,vlaue这又是什么啊??===》最开始已经回答你了。
------解决方案--------------------
1.我想问下st.Name="luo"什么意思?
就是给学生实例st的名字属性赋值的意思。

2public string Name这句话不是定义一个共有的变量吗?
这么写是有问题的,作为成员还是用private隐藏起来,外部只能通关过Name属性来访问这个成员。