惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
Martin Fowler
Martin Fowler
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
V
Visual Studio Blog
博客园_首页
Engineering at Meta
Engineering at Meta
The Cloudflare Blog
MongoDB | Blog
MongoDB | Blog
Blog — PlanetScale
Blog — PlanetScale
T
The Blog of Author Tim Ferriss
雷峰网
雷峰网
D
Docker
博客园 - 司徒正美
S
SegmentFault 最新的问题
M
MIT News - Artificial intelligence
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
U
Unit 42
J
Java Code Geeks
A
About on SuperTechFans
N
Netflix TechBlog - Medium
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
Security Affairs
I
Intezer
Cisco Talos Blog
Cisco Talos Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
B
Blog RSS Feed
P
Privacy & Cybersecurity Law Blog
T
Tenable Blog
T
Threatpost
H
Hacker News: Front Page
G
Google Developers Blog
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
Apple Machine Learning Research
Apple Machine Learning Research
L
Lohrmann on Cybersecurity
大猫的无限游戏
大猫的无限游戏
Google DeepMind News
Google DeepMind News
A
Arctic Wolf
S
Secure Thoughts
GbyAI
GbyAI
NISL@THU
NISL@THU
S
Security @ Cisco Blogs
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Webroot Blog
Webroot Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
O
OpenAI News
Spread Privacy
Spread Privacy
Application and Cybersecurity Blog
Application and Cybersecurity Blog

博客园 - deerchao

Unity 在平面上播放含透明通道的视频(Play video with alpha channel on plane in unity) 域名迁移 错误721 -- 在虚拟机中连接VPN, 显示验证用户名和密码之后出错 - deerchao 繁体编码文本文件转换为简体编码的工具 生成VB多行字符串常量的工具 64位虚拟机Guest OS安装错误:0xC0000225 在64bit Win2008上运行Asp + Access网站 工具: 删除Visual Studio项目中文件链接,并把原文件复制到相应的目录 一个代表年月的类YearMonth Tip: Resharper 中 "Unknown Comment" 问题的解决办法 Tips 测试ConnectionString是否能连接上数据库服务器 奇怪的TreeView(WinForms)自动选中问题 From C# to VB MapPath的反函数(Reversing MapPath) A fast object clone class - using Expression.Compile() jQuery.combobox, 给文本框添加下拉选项的轻量级插件 CDTray, 打开,关闭光驱的系统托盘程序 jQuery.Excel, 使用Ctrl+方向键/Home/End在input表格中移动
Struct与赋值
deerchao · 2010-01-06 · via 博客园 - deerchao
    using System;
    using System.Collections.Generic;

    struct SomeStruct
    {
        public int SomeValue;
    }

    class SomeContainerClass
    {
        public SomeStruct Struct;
    }

    struct SomeContainerStruct
    {
        public SomeStruct Struct;
    }

    class Program
    {
        static void Main()
        {
            TestStruct();
            TestClass();
            TestArray();
            TestList();

            Console.ReadKey();
        }

        static SomeStruct GetDefaultValue()
        {
            return new SomeStruct { SomeValue = 100 };
        }


        private static void TestStruct()
        {
            ShowTestName("TestStruct:");
            var c = new SomeContainerStruct { Struct = GetDefaultValue() };
            ShowResult("original:", c.Struct.SomeValue);

            var s = c.Struct;
            s.SomeValue = 200;
            ShowResult("indirectly:", c.Struct.SomeValue);

            c.Struct.SomeValue = 300;
            ShowResult("directly:", c.Struct.SomeValue);
        }

        private static void TestClass()
        {
            ShowTestName("TestClass:");
            var c = new SomeContainerClass { Struct = GetDefaultValue() };
            ShowResult("original:", c.Struct.SomeValue);

            var s = c.Struct;
            s.SomeValue = 200;
            ShowResult("indirectly:", c.Struct.SomeValue);

            c.Struct.SomeValue = 300;
            ShowResult("directly:", c.Struct.SomeValue);
        }

        private static void TestArray()
        {
            ShowTestName("TestArray:");
            var c = new[] { GetDefaultValue() };
            ShowResult("original:", c[0].SomeValue);

            var s = c[0];
            s.SomeValue = 200;
            ShowResult("indirectly:", c[0].SomeValue);

            c[0].SomeValue = 300;
            ShowResult("directly:", c[0].SomeValue);
        }

        private static void TestList()
        {
            ShowTestName("TestList:");
            var c = new List<SomeStruct> { GetDefaultValue() };
            ShowResult("original:", c[0].SomeValue);

            var s = c[0];
            s.SomeValue = 200;
            ShowResult("indirectly:", c[0].SomeValue);

            //the follow line won't compile
            //Cannot modify the return value of 'System.Collections.Generic.List<StructTest.SomeStruct>.this[int]' because it is not a variable
            //c[0].SomeValue = 300;
            //ShowTestName("directly:", c[0].SomeValue);
        }


        static void ShowResult(string condition, int value)
        {
            Console.Write(condition);
            Console.Write("\t");
            Console.WriteLine(value);
        }

        static void ShowTestName(string message)
        {
            Console.WriteLine();
            Console.WriteLine(message);
        }

    }