请问关于c的具体应用场景有哪些?

2026-04-29 04:202阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计342个文字,预计阅读时间需要2分钟。

请问关于c的具体应用场景有哪些?

csharpusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Dynamic;

namespace SelfDynamicObj{ public delegate object DeleDynamic(dynamic sender, params object[] pramas); public class DynObj : DynamicObject { public override bool TryGetMember(GetMemberBinder binder, out object result) { // Logic to handle property or method access result=null; return true; }

public override bool TrySetMember(SetMemberBinder binder, object value) { // Logic to handle property assignment return true; } }}

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Dynamic; namespace SelfDynamicObj { public delegate object DeleDynamic(dynamic sender, params object[] pramas); public class DynObj : DynamicObject { public Dictionary<string, object> _values; public DynObj() { _values = new Dictionary<string, object>(); } public object GetPropertyValue(string propertyName) { if (_values.ContainsKey(propertyName) == true) { return _values[propertyName]; } return null; } public void SetPropertyValue(string propertyName, object value) { if (_values.ContainsKey(propertyName) == true) { _values[propertyName] = value; } else { _values.Add(propertyName, value); } } public override bool TryGetMember(GetMemberBinder binder, out object result) { result = GetPropertyValue(binder.Name); return result == null ? false : true; } public override bool TrySetMember(SetMemberBinder binder, object value) { SetPropertyValue(binder.Name, value); return true; } public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result) { var deleObj = GetPropertyValue(binder.Name) as DelegateObj; if (deleObj == null || deleObj.CallMethod == null) { result = null; return false; } result = deleObj.CallMethod(this, args); return true; } public override bool TryInvoke(InvokeBinder binder, object[] args, out object result) { return base.TryInvoke(binder, args, out result); } } public class DelegateObj { private DeleDynamic _deleDynamic; public DeleDynamic CallMethod { get { return _deleDynamic; } } public DelegateObj(DeleDynamic deleDynamic) { this._deleDynamic = deleDynamic; } public static DelegateObj Function(DeleDynamic deleDynamic) { return new DelegateObj(deleDynamic); } } }

使用如下:

List<string> names = new List<string>() { "a00", "b00", "c00", "d00" };

请问关于c的具体应用场景有哪些?


dynamic obj = new DynObj();
obj.date = "2019-02-26";
obj.stories = names;
string result0 = JsonConvert.SerializeObject(obj._values);

序列化后的结果如下:

{ "date": "2019-02-26", "stories": ["a00", "b00", "c00", "d00"]}

本文共计342个文字,预计阅读时间需要2分钟。

请问关于c的具体应用场景有哪些?

csharpusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Dynamic;

namespace SelfDynamicObj{ public delegate object DeleDynamic(dynamic sender, params object[] pramas); public class DynObj : DynamicObject { public override bool TryGetMember(GetMemberBinder binder, out object result) { // Logic to handle property or method access result=null; return true; }

public override bool TrySetMember(SetMemberBinder binder, object value) { // Logic to handle property assignment return true; } }}

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Dynamic; namespace SelfDynamicObj { public delegate object DeleDynamic(dynamic sender, params object[] pramas); public class DynObj : DynamicObject { public Dictionary<string, object> _values; public DynObj() { _values = new Dictionary<string, object>(); } public object GetPropertyValue(string propertyName) { if (_values.ContainsKey(propertyName) == true) { return _values[propertyName]; } return null; } public void SetPropertyValue(string propertyName, object value) { if (_values.ContainsKey(propertyName) == true) { _values[propertyName] = value; } else { _values.Add(propertyName, value); } } public override bool TryGetMember(GetMemberBinder binder, out object result) { result = GetPropertyValue(binder.Name); return result == null ? false : true; } public override bool TrySetMember(SetMemberBinder binder, object value) { SetPropertyValue(binder.Name, value); return true; } public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result) { var deleObj = GetPropertyValue(binder.Name) as DelegateObj; if (deleObj == null || deleObj.CallMethod == null) { result = null; return false; } result = deleObj.CallMethod(this, args); return true; } public override bool TryInvoke(InvokeBinder binder, object[] args, out object result) { return base.TryInvoke(binder, args, out result); } } public class DelegateObj { private DeleDynamic _deleDynamic; public DeleDynamic CallMethod { get { return _deleDynamic; } } public DelegateObj(DeleDynamic deleDynamic) { this._deleDynamic = deleDynamic; } public static DelegateObj Function(DeleDynamic deleDynamic) { return new DelegateObj(deleDynamic); } } }

使用如下:

List<string> names = new List<string>() { "a00", "b00", "c00", "d00" };

请问关于c的具体应用场景有哪些?


dynamic obj = new DynObj();
obj.date = "2019-02-26";
obj.stories = names;
string result0 = JsonConvert.SerializeObject(obj._values);

序列化后的结果如下:

{ "date": "2019-02-26", "stories": ["a00", "b00", "c00", "d00"]}