Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 107,793

HOME > .NET Framework > Forum > [หน้าฮี] "Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:..." แก้ไขอย่างไร





 

[หน้าฮี] "Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:..." แก้ไขอย่างไร

 



Topic : 133921



โพสกระทู้ ( 79 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook Blogger



No.2 @ 133918

ตอบความคิดเห็นที่ : 2 เขียนโดย : หน้าฮี เมื่อวันที่ 2019-07-22 11:35:17
รายละเอียดของการตอบ ::
Error : Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: ''object' does not contain a definition for 'Ass''

Code (C#)
public static IEnumerable<dynamic> IsModule()
{
    var list = Enumerable.Repeat(new
    {
        Ass = 1,
        Module = String.Empty
    }, 0).ToList();

    list.Add(new { Ass = 1, Module = "PO" });
    list.Add(new { Ass = 2, Module = "SO" });
    list.Add(new { Ass = 2, Module = "AR" });
    list.Add(new { Ass = 2, Module = "AP" });
    list.Add(new { Ass = 2, Module = "IC" });
    list.Add(new { Ass = 2, Module = "GL" });
    return list; //.ToList();
}

public static void GetValue()
{
    dynamic lst = IsModule();
    foreach (var item in lst)
    {
        Console.WriteLine(item.Ass);
    }
}



แก้ไขอย่างไร


ปล.เป็น Dynamic Mod จำเป็น



Tag : .NET, Class Library, LINQ, C#, VS 2017 (.NET 4.x), Windows







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2019-07-22 13:17:37 By : PhrayaDev View : 259 Reply : 32
 

 

No. 1



โพสกระทู้ ( 79 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook Blogger

@ หน้าฮี

ผมรันได้ปกติครับ (.NET Framework 4.5.2)

ไม่ได้แก้อะไร...ดัดแปลงแค่การแสดงผลแค่นี้

Code (C#)
// เหมือนเดิม
// ...

public static void GetValue()
        {
            dynamic lst = IsModule();
            foreach (var item in lst)
            {
                Console.WriteLine(item.Ass + "({0})" + " / " + item.Module + "({1})", item.Ass.GetType().ToString(), item.Module.GetType().ToString());
            }

            Console.ReadLine();
        }


ผลลัพธ์

ผล






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-22 13:24:02 By : PhrayaDev
 


 

No. 2

Guest


ผมลืมบอกไปครับว่าผม รันข้าม Assembly และใช้ .NET Core 2.2

Assembly AAA
Code (C#)
public static IEnumerable<dynamic> IsModule()
{
    var list = Enumerable.Repeat(new
    {
        Ass = 1,
        Module = String.Empty
    }, 0).ToList();

    list.Add(new { Ass = 1, Module = "PO" });
    list.Add(new { Ass = 2, Module = "SO" });
    list.Add(new { Ass = 2, Module = "AR" });
    list.Add(new { Ass = 2, Module = "AP" });
    list.Add(new { Ass = 2, Module = "IC" });
    list.Add(new { Ass = 2, Module = "GL" });
    return list; //.ToList();
}


Assembly BBB (Caller)

Code (C#)
public static void GetValue()
{
    dynamic lst = IsModule();
    foreach (var item in lst)
    {
        Console.WriteLine(item.Ass);
    }
}




Debug เห็นหมดทุกฯอย่าง เป็นยิ่งกว่าปรกติ แต่อ่านค่าไม่ได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-22 15:54:26 By : หน้าฮี
 

 

No. 3

Guest


assA_assB
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-22 15:57:53 By : หน้าฮี
 


 

No. 4



โพสกระทู้ ( 7,965 )
บทความ ( 2 )



สถานะออฟไลน์


ทดสอบได้เหมือนกัน
IEnumerable<dynamic> IsModule()
Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public static IEnumerable<dynamic> IsModule()
        {
            var list = Enumerable.Repeat(new
            {
                Ass = 1,
                Module = String.Empty
            }, 0).ToList();

            list.Add(new { Ass = 1, Module = "PO" });
            list.Add(new { Ass = 2, Module = "SO" });
            list.Add(new { Ass = 2, Module = "AR" });
            list.Add(new { Ass = 2, Module = "AP" });
            list.Add(new { Ass = 2, Module = "IC" });
            list.Add(new { Ass = 2, Module = "GL" });
            return list; //.ToList();
        }

        public static void GetValue(ListBox ls)
        {
            dynamic lst = IsModule();
            foreach (var item in lst)
            {
                ls.Items.Add(item.Ass);
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            GetValue(listBox1);
        }
    }
}



ปล.
อ้าวกรรม คนละ assembly
reference + using มันเข้ามาไม่ได้เหรอครับ


ประวัติการแก้ไข
2019-07-22 16:39:02
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-22 16:22:46 By : Chaidhanan
 


 

No. 5

Guest


@ท่านChaidhanan, @ท่านมหาเทพ

ขอบคุณมากครับ


ผมเดาเอาว่า .NET Core 2.2 "มันปกป้องเพื่อความปลอดภัย/อื่นฯ" ดีไหมดีมากมาก

Project BBB โค๊ดจริง
Code (C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Dynamic;

[assembly: InternalsVisibleTo("<Caller_Assembly>")] //AA.WebApp
namespace BB_Database.Models.Settings.IS
{
    public static class ISBook2Express
    {
        public static IEnumerable<dynamic> IsModule()
        {
            var list = Enumerable.Repeat(new
            {
                Ass = 1,
                Module = String.Empty
            }, 0).ToList();

            list.Add(new { Ass = 1, Module = "PO" });
            list.Add(new { Ass = 2, Module = "SO" });
            list.Add(new { Ass = 2, Module = "AR" });
            list.Add(new { Ass = 2, Module = "AP" });
            list.Add(new { Ass = 2, Module = "IC" });
            list.Add(new { Ass = 2, Module = "GL" });
            return list.ToList();// list.Cast<dynamic>();//.ToList();
        }

        public static void GetValue()
        {
            dynamic lst = IsModule();
            foreach (var item in lst)
            {
                Console.WriteLine(item.Ass);
            }
        }
    }
}

Project AA โค๊ดจริง
Code (C#)
[cs]namespace AA.WebApp
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
            dynamic varTest = BB_Database.Models.Settings.IS.ISBook2Express.IsModule();
            foreach (var item in varTest)
            {
                int ia = item.Ass;
                string ib = item.Module;
            }            
        }
     }
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-22 16:47:11 By : หน้าฮี
 


 

No. 6



โพสกระทู้ ( 79 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook Blogger

ตอบความคิดเห็นที่ : 2 เขียนโดย : หน้าฮี เมื่อวันที่ 2019-07-22 15:54:26
รายละเอียดของการตอบ ::
555+

จริงๆ ผมก็พอจำได้ครับ .NET Core 2.2 ...ติดตามผลงานอยู่ และคุ้นตาเว็บไซต์ Sexy ของท่าน จึงตัดมาเป็นกระทู้ใหม่ เพราะตอนนี้ผมใช้ Core ไม่ได้...เผื่อท่านที่สะดวกจะได้ช่วยๆ กัน


Missing .NET Core
ส่วนผมต้องปรับตัวก่อน...คงอีกซักพัก เพราะตอนนี้ HDD แดงเถือกครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-22 16:47:23 By : PhrayaDev
 


 

No. 7

Guest


Quote:
reference + using มันเข้ามาไม่ได้เหรอครับ

เอาเข้ามาเรียบร้อยแล้วครับ และขึ้น Error อย่างที่เห็นครับผม

ผมเลยไปทำอย่างอื่น นั่นก็คือ
--- ออกแบบฐานข้อมูล คลังสินค้า เชื่อมกับบัญชีสองตัว (Express/CD)
----- ทำเพื่อะไร? เอาส่วนที่ดีดีดีของทั้งสองโปรแกรม มารวมกันเป็นหนึ่งเดียวกับหน้าฮี

ครับผม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-22 16:55:05 By : หน้าฮี
 


 

No. 8



โพสกระทู้ ( 79 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook Blogger

ตอบความคิดเห็นที่ : 5 เขียนโดย : หน้าฮี เมื่อวันที่ 2019-07-22 16:47:11
รายละเอียดของการตอบ ::
ตอน Debug มัน error ตอนไหนครับ ใน BBB หรือ AA

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-22 16:59:51 By : PhrayaDev
 


 

No. 9

Guest


@ท่านพระยาเทพ

ผมมีอยู่ 2 เหตุผลที่ต้องใช้ .NET Core
1. ฟรี
2. รันได้ทุก OS โดยเฉพาะอย่างยิ่ง Linux/MaxOS/Unix
--- ผมลองรันทดสอบบน Linux Ubonto 18.04 LTS ผ่านฉลุย
--- ผมไม่ได้ลองรันทดสอบบน MaxOS แต่คิดว่าไม่น่าจะมีปัญหาอะไรตามมา
--- ผมไม่ได้ลองรันทดสอบบน Unix AIX ผมคิดว่าน่าจะได้แต่คงต้องใช้พลังมากหน่อย (ได้ก็ดีไม่ได้ก็ไม่เป็นไร)

จากที่กล่าวมาข้างต้น ต่อไปผมจะให้ความสำคัญกับ Linux/MySQL/FireBird/MariaDB
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-22 17:12:33 By : หน้าฮี
 


 

No. 10

Guest


จาก #NO5

ทำได้แล้วครับ


.NET Core 2.2 มันทำถูกต้องแล้ว (เห็นแต่ใช้งานไม่ได้) จริงฯแล้วต้องไม่ให้เห็นเลยด้วยซ้ำไป

Code (C#)
Code (C#)
[cs]using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Dynamic;
//
//***** ที่ไม่ได้มันถูกต้องแล้ว  แสดงว่า .NET Core 2.2
//
[assembly: InternalsVisibleTo("AA", AllInternalsVisible =true)] // assembly name = AA,  namespace AA.WebApp
namespace BB_Database.Models.Settings.IS
{
    public static class ISBook2Express
    {
        public static IEnumerable<dynamic> IsModule()
        {
            var list = Enumerable.Repeat(new
            {
                Ass = 1,
                Module = String.Empty
            }, 0).ToList();

            list.Add(new { Ass = 1, Module = "PO" });
            list.Add(new { Ass = 2, Module = "SO" });
            list.Add(new { Ass = 2, Module = "AR" });
            list.Add(new { Ass = 2, Module = "AP" });
            list.Add(new { Ass = 2, Module = "IC" });
            list.Add(new { Ass = 2, Module = "GL" });
            return list; //.ToList();// list.Cast<dynamic>();//.ToList();
        }

        public static void GetValue()
        {
            dynamic lst = IsModule();
            foreach (var item in lst)
            {
                Console.WriteLine(item.Ass);
            }
        }
    }
}

Project AA โค๊ดจริง
<strong>Code (C#)</strong>
[cs]namespace AA.WebApp //Assembly Name จริง ============================= AA
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
            dynamic varTest = BB_Database.Models.Settings.IS.ISBook2Express.IsModule();
            foreach (var item in varTest)
            {
                int ia = item.Ass;
                string ib = item.Module;
            }            
        }
     }
}

[/cs]
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-22 21:25:57 By : หน้าฮี
 


 

No. 11

Guest


อธิบายสั้นฯ ตัวแปร

Assembly BB (ถูกเรียกโดย AA ซึ่งมาจากแอฟริกาโน่นแน่ะ)
ตัวแปรคืนค่ากลับ list มันเป็น anonymous type
หมายความว่า ตัวมันเองยังไม่รู้เลยว่าตัวมันเองจะมีค่าเป็นอะไร อาจจะเป็น int16, int32, string, etc.. แล้วแต่ฟ้ากำหนด
-- จู่ฯ Assembly AA มาถามว่า ทวดของทวดของทวด คุณชื่ออะไร BB ตอบว่า ตรูยังไม่รู้เลยว่าตรูชื่ออะไร แล้วตรูจะตอบเอ็งได้อย่างไร
ประมาณนั้น

Assembly AA (ไปเรียก BB)

Code (C#)
            var list = Enumerable.Repeat(new
            {
                Ass = 1,
                Module = String.Empty
            }, 0).ToList();

            list.Add(new { Ass = 1, Module = "PO" });
            list.Add(new { Ass = 2, Module = "SO" });
            list.Add(new { Ass = 2, Module = "AR" });
            list.Add(new { Ass = 2, Module = "AP" });
            list.Add(new { Ass = 2, Module = "IC" });
            list.Add(new { Ass = 2, Module = "GL" });
            return list; //.ToList();// list.Cast<dynamic>();//.ToList();
            //list เป็นตัวแปรประเภท anonymous type แปลเป็นไทยได้ว่า เอ๋อเอ๋อ ยุงบินผ่านหน้าก็หัวเราะ/สลับร้องไห้ได้ ประมาณนั้น
            //ที่ได้ก็เพราะโดนบังคับ เช่น อายุ 9 ขวบ แล้วโดนสั่งให้มีผัวเป็นตัวเป็นตน
            //[assembly: InternalsVisibleTo("AA", AllInternalsVisible =true)]
           //มันฝืนธรรมชาติ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-22 21:46:11 By : หน้าฮี
 


 

No. 12



โพสกระทู้ ( 79 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook Blogger

แจ่ม

ผมก็เพิ่งผ่านเหมือนกัน ไม่ได้ใช้ attribute แต่เป็น reflection

ตามที่มันบอก ''object' does not contain a definition for 'Ass'' มันไม่ contain ก็ไปเพิ่ม definition(property) ลงใน Assembly ของ Library ให้มันมองเห็นจาก Caller

IEnumerable ไม่มี property ชื่อ Ass แต่ Ass เป็นแค่ Element


Code (C#)
private static List<int> ass;
private static List<string> module;
public static void IsModule()
{
    var list = Enumerable.Repeat(new
    {
        Ass = 1,
        Module = String.Empty
    }, 0).ToList();

    list.Add(new { Ass = 1, Module = "PO" });
    list.Add(new { Ass = 2, Module = "SO" });
    list.Add(new { Ass = 2, Module = "AR" });
    list.Add(new { Ass = 2, Module = "AP" });
    list.Add(new { Ass = 2, Module = "IC" });
    list.Add(new { Ass = 2, Module = "GL" });

    // ลองแปลงร่างและแยกร่างดู
	ass = list.Select(c => c.Ass).ToList();
    module = list.Select(c => c.Module).ToList();

    //return list; //.ToList();
}

// ใช้ตัวนี้แทน แต่ต้องเรียก IsModule() ก่อน ...กลับไปกลับมาเป็น reflection
public static List<int> Ass { get { return ass; } }
public static List<string> Module { get { return module; } }
 



ขอบคุณสำหรับการแบ่งปันครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-22 23:59:31 By : PhrayaDev
 


 

No. 13

Guest


@ ท่านพญาเทพ #No. 12
วิธีการแก้ปัญหาของคุณ เป็นธรรมชาติดีครับ เดี๋ยวผมจะมาเล่าให้ฟังว่าทำไม?
---ผมถึงจำเป็นต้องใช้ dynamic
-- ก่อนอื่นรบกวนช่วยแก้ไข #NO 10 ด้วยครับ ตัวแสดงผลภาษา C# ของ Thaicrete.com มันดูเพี้ยนฯ

อันนี้เป็นตัวอย่างที่ผมทำไว้อ้างอิงในภายหลัง ครบเครื่องเรื่อง Delegate/Lambda
Code (VB.NET)
Imports System.Collections.Generic

Public Class WL_ERP_Calculator
    Private Delegate Function DelegateFormula(ByVal m As Double, ByVal n As Double) As Double
    Private Shared Formula As New Dictionary(Of String, DelegateFormula)() From {{"+", Function(m, n) m + n},
                                                                                 {"-", Function(m, n) m - n},
                                                                                 {"*", Function(m, n) m * n},
                                                                                 {"/", Function(m, n) m / n}
                                                                                }
    ''' <summary>
    ''' Example : Dim ret = Calculate(12.50, 10.00, "-") 
    '''           /Result = 2.50
    ''' </summary>
    Public Shared Function Calculate(ByVal a As Double, b As Double, Optional ByVal Oper As String = "+") As Double
        Dim retValue As Double = 0.0
        If (("+-*/").Contains(Oper)) AndAlso (Not (Oper = "/" AndAlso b = 0)) Then
            retValue = Formula(Oper).Invoke(a, b)
        End If
        Return retValue
    End Function
End Class

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-23 04:30:19 By : หน้าฮี
 


 

No. 14

Guest


ผมจะเอามาใช้ตรงนี้ (รองรับทุกฯ Object/รองรับทุกฯ Expressioin)

ass_013


ผมมี บัญชีโปรแกรมต้นแบบอยุ่ 3 ตัว แต่ละตัวก็มีเทคนิคแตกต่างกันไป
1. Express
2. CD Organizer
3. โปรแกรมถูกเขียนขึ้นมาใช้งานจริงในหลายฯบริษัท (โดยเจ้าหน้าที่ของ MS ประเทศไทย)

มันถึงเวลาแล้วที่ผมจะยำ 1/2/3 ให้เป็นหนึ่งเดียว (ยกแต่สิ่งดีดีมา)
-- ผมมีโครงสร้างโปรแกรมที่แข็งแกร่งพอเพียง มากล้นเกินไป จะพูดแบบนี้ก็ไม่ผิดนัก

ปล. ผมจำเป็นต้องรู้บัญชีอย่างยิ่งยวด (Dr/Cr) จนถึงโน่น ออกงบทดลอง ---> งบดุล/งบกำไร-ขาดทุน
รู้ต้องรู้จริงไม่อย่างนั้นแล้วจะเขียนโปรแกรมไม่ได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-23 04:57:01 By : หน้าฮี
 


 

No. 15

Guest


ตัวอย่างโตรงสร้างโปรแกรมที่แข็งแกร่ง ห้ามนอกลู่นอกทาง JavaScript
--- ทุกฯอย่างต้องใหม่หมด ล้ำสมัยอทิเช่น Bootstrap >= 4
--- ทุกฯอย่างห้ามนอกลู่ (Interface)

Code (JavaScript)
//JavaScript Core WLS Framework

var wls = wls || {};

wls.jc = wls.jc || {};
wls.String = wls.String || {};
wls.HTML = wls.HTML || {};

wls.jc = {
    alert: null,
    confirm: null,
};

wls.HTML = {
    ShowHide: null, //Display Block OR None
    ZeroText: null, //String.Empty
    ZeroDec0: null, //0
    ZeroDec1: null, //0.0
    ZeroDec2: null, //0.00
    ZeroDec3: null, //0.000
    ZeroDec4: null  //0.0000
}

/**
* @param {string} title หัวเรื่องข้อความเตือน
* @param {string} content ข้อความแจ้งเตือน
* @param {function} closeCallbackFnc เมื่อคลิกปุ่ม Close จะทำอะไรก็ว่ากันไป
* @param {string} btnCloseText ข้อความบนปุ่ม Close
*/
wls.jc.alert = function (title, content, closeCallbackFnc, btnCloseText) {
    $.alert({
        //theme: 'material', // 'material', 'bootstrap'
        title: title || 'ข้อความแจ้งเตือน',
        content: content || 'โปรดระมัดระวัง ข้อมูลสำคัญกว่าเมีย',
        buttons: {
            btnClose: {
                text: '<span style="padding-left:20px;padding-right:20px">' + (btnCloseText || 'รับทราบ') + '</span>',
                btnClass: 'btn-warning',
                action: closeCallbackFnc || function () { }
            }
        },
        backgroundDismiss: true,
        escapeKey: true,
    });
}

/**
* @param {string} x XXX
* @param {string} y YYY
* @param {function} fncCallback เมื่อคลิกปุ่ม Close จะทำอะไรก็ว่ากันไป
*/
wls.jc.confirm = function (x, y, fncCallback) {
    //TODO;
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-23 06:02:27 By : หน้าฮี
 


 

No. 16

Guest


อะไรควรจำ อะไรไม่ควรจด และอะไรไม่ควรจดจำ
ass_014

ปล. ถ้าผมคาดเดาไม่ผิด อีก 5-10 ปีข้างหน้า วิ่งไปสู่ WebAssembly กันหมด
---
ทิ้งไว้เพียงอดีตที่ไม่เคยหวลมา

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-23 06:13:23 By : หน้าฮี
 


 

No. 17

Guest


พึ่งนึกอะไรได้เดี๋ยวลืม ฝากแปะเอาไว้ก่อนครับ

Code (JavaScript)
var results = await fuckAJAX(assAJAX);

async function fuckAJAX(objAJAX) {
    let result = null;
    try {
        result = await objAJAX;
        return result;
    } catch (error) {
        console.error(error);
    }
}

function assAJAX(type, url) {
    $.ajax({
        url: url,
        type: type || 'POST',
        data: {
            JVCode: "JV2019-07-01"
        },
        success: function (data) {
            return data;
        },
        error: function (jqXHR, textStatus, errorThrown) {
            return null;
        }
    });
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-23 07:23:47 By : หน้าฮี
 


 

No. 18

Guest


Quote:
https://www.youtube.com/watch?v=M7ovvi6UdcI

ทิ้งไว้เพียงอดีตที่ไม่เคยหวนกลับมา

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-23 07:32:50 By : หน้าฮี
 


 

No. 19

Guest


Quote:
https://www.youtube.com/watch?v=bl7QzS3Uu0A

ทิ้งไว้เพียงอดีตที่ไม่เคยหวนกลับมา

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-23 07:48:28 By : หน้าฮี
 


 

No. 20

Guest


joke_prg_01
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-23 08:23:07 By : หน้าฮี
 


 

No. 21

Guest


joke_prg_02
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-23 08:26:43 By : หน้าฮี
 


 

No. 22

Guest


joke_prg_03
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-23 08:40:43 By : หน้าฮี
 


 

No. 23

Guest


@ท่านพระยาเทพ
@มหาท่านChaidhanan


วันนี้ผมเบื่อมากฯ เงินไม่มีติดกระเป๋าแม้แต่บาทเดียว ล้านปัญหาประดังสุมเข้ามาพร้อมฯกัน ถ้าเป็นคนอื่นคงจะฆ่าตัวตายไปแล้ว

ผมเลยมานั่งแหย่ .NET Core 3.0 ตั้งแต่บ่ายโมง ยัน ณ.เวลานี้ (ใช้เวลาไม่กี่ชั่วโมงผมก็ ปรุโปร่ง )
ผลลัพธ์ที่ได้เป็นดังนี้ เลยเอามาเล่าให้ฟังครับ
--- ผมพูดได้เต็มปากเต็มคำว่า Angular Version 100 ผมก็ไม่ใช้ React Version 101 ผมก็ไม่ใช้ ไม่อยู่ในสายตาอีกต่อไปแล้ว พูดแล้วไม่คืนคำแน่นอน

มีปุ่มเขียว 3 ปุ่ม ก่อนและหลังการกดปุ่ม "ลองข้างหลังดูซิ"

ผลการทดสอบ ใช้คำว่าเหนืออัศจรรย์โลกนี้คงไม่มีใครว่า (สังเกตุดูดีดีนะความเหมือนบนความแตกต่าง)

ก่อน
x_t1

หลัง
x_t2



@ท่านพระยาเทพ
@มหาท่านChaidhanan


ผมพูดจริงฯนะ คุณทั้งสองคนกล้าให้ผมยืมเงิน คนละ 2,000 บาทไหม?
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-24 18:52:48 By : หน้าฮี
 


 

No. 24

Guest


จาก #NO 23

x_t3

สมมุติว่า คุณทั้งสองคนให้ผมยืมเงิน "แบบหน้าด้านด้าน(ผม)"
เงินที่ได้ผมจะเอาไปทำอะไรรู้ไหม?
--- ผมอยากพับดอกบัว 50 ดอก ผมตั้งใจว่าแต่ละดอกลายพับต้องไม่เหมือนกัน
--- ทำไปทำไม
------ ผมจะเอาไปถวายพระ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-24 19:01:47 By : หน้าฮี
 


 

No. 25

Guest


ต่อเนื่องมาจากหัวข้อที่ผ่านมา เอาให้เห็นชัดชัดชัด
Code (JavaScript)
function Hello() {
    $("#btnAssResult1").val("พี้ได้หลังก็จะไม่ลืมหน้า");
    $("#btnAssResult2").val("พี้ได้หน้าพี้ก็จะไม่ลืมหลัง");
    return "Hi";
}


Code (C#)
@page "/"

<h1>Hello, world!</h1>

Welcome to your new app.

<SurveyPrompt Title="How is Blazor working for you?" />

<h1>ลองจิ้มดูซิ ชาตินี้ต้องลอง</h1>

<input type="button" class="btn btn-success" onclick="Hello();" value="ลองข้างหลังดูซิ" id="btnAss" />
<input type="button" class="btn btn-success" value="ได้หน้าอย่าลืมหลัง" id="btnAssResult1" />
<input type="button" class="btn btn-success" value="ได้หลังอย่าลืมหน้า" id="btnAssResult2" />

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-24 19:06:30 By : หน้าฮี
 


 

No. 26

Guest


จากหัวข้อที่ #25 กระผมมั่นใจว่า คุณทั้งสองคนเข้าใจ คนอื่นอาจจะไม่เข้าใจ

-----
-----
-----

ปล. สำหรับผม หายใจเข้า แล้ว หายใจออก มันยากเสียยิ่งกว่าการเขียนโปรแกรม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-24 19:09:39 By : หน้าฮี
 


 

No. 27



โพสกระทู้ ( 79 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook Blogger

No.13-17, 20-22
Profile แน่นจริงครับ

18-19

ชีวิตมีทั้งศาสตร์และศิลป์
https://www.youtube.com/watch?v=SP8L-Nw3hNE

23-26
ไตรศอ ยังไม่สมประกอบ...ขอบคุณสำหรับข่าวความคืบหน้าครับ

ดูแล้วเกิดการเปรียบเทียบขึ้นในหัว

vb4


หน้าฮี เมื่อวันที่ 2019-07-26 09:52:28
รายละเอียดของการตอบ ::
ขอถามหน่อยครับ มีวิธีที่ดีกว่านี้ไหม ตรง //สั้นดี *****
Generic Type

Code (C#)
public static string assDivision(JObject args)
{
    //ยาวเกินไป
    var x1Value = args.GetValue("key1", StringComparison.OrdinalIgnoreCase).Value<string>();
    var x2Value = args.GetValue("key2", StringComparison.OrdinalIgnoreCase).Value<int>();
    var x3Value = args.GetValue("key3", StringComparison.OrdinalIgnoreCase).Value<DateTime>();
    //ยาวเกินไป

    //สั้นดี *****
    var x4Value = assValue<string>(args, "key4");
    var x5Value = assValue<DateTime>(args, "key5");
    var x6Value = assValue<int>(args, "key6");
    //สั้นดี *****

    return string.Empty;
}

private static T assValue<T>(JObject args, string key)
{
    return (T)Convert.ChangeType(args.GetValue(key, StringComparison.OrdinalIgnoreCase).Value<T>(), typeof(T));
}




ถ้าดีคือสั้น ผมว่าคงไม่มีแล้วครับ

จริงๆ ผมอยากใช้แบบนี้

Code (C#)
Func<string, JObject, T> Val13<T> = (s, j = JObj) => {return j.GetValue(s, StringComparison.OrdinalIgnoreCase).Value<T>();};
var x1 = Val13<string>("key1");
var x2 = Val13<int>("key2");
var x3 = Val13<DateTime>("key3");

Func<JObject, int, T> Val46<T> = (j = JObj, i) => {return j.GetValue(i, StringComparison.OrdinalIgnoreCase).Value<T>();};
var x4 = Val46<string>(i:3);
var x5 = Val46<DateTime>(i:4);
var x6 = Val46<int>(i:5);


แต่ผมไม่ทัน .NET / .NET ไม่ Support ความต้องการนี้ จะเอาจริงต้องขี่หลังเสือ(Override) ขอบาย 55


สุดท้ายออกมาแบบนี้ครับ

Code (C#)
static void Main()
{    
    dynamic[] x = new dynamic[]{
        Val16<string>("key1"),
        Val16<int>("key2"),
        Val16<DateTime>("key3"),
        Val16<string>("key4"),
        Val16<DateTime>("key5"),
        Val16<int>("key6")
    };
    for (int i = 0; i < x.Length; i++)
    {
        Console.WriteLine(x[i]);
    }
    Console.ReadKey();
}

private static T Val16<T>(string key)
{
    JObject j = new JObject();
    return j.GetValue(key, StringComparison.OrdinalIgnoreCase).Value<T>();
}

// omitted parts
public class JObject {...}
public class data {...}



output :

tresults


ประวัติการแก้ไข
2019-07-27 02:02:15
2019-07-27 02:03:59
2019-07-27 02:15:48
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-27 02:00:17 By : PhrayaDev
 


 

No. 28

Guest


@PhrayaDev

JObject มาจากนี่ครับ
Code (C#)
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;



Code (C#)
private static T Val16<T>(string key)
{
    JObject j = new JObject();
    return j.GetValue(key, StringComparison.OrdinalIgnoreCase).Value<T>();
}

public void GenericMethod<T>(T SexInput) { }
GenericMethod<int>(123); //Don't need the <>.
GenericMethod(123); //Is enough




ผมนี้ผมไม่ได้เขียนเองแต่ผมได้มาจาก อินตาเนต พอดีผมตาไวและรู้จักสังเกตุ
มันคือ Dynamic Class/Dynamic Property

Code (VB.NET)
        Imports System.Dynamic

        If True = True Then
            Dim epdObj As New ExpandoObject()
            Dim p = TryCast(epdObj, IDictionary(Of String, Object))
            p("A") = "หอย"
            p("B") = "งาม"
            p("C") = "จริง"

            If p.Count > 0 Then
                MsgBox(p.Item("A")) 'Result หอย
                MsgBox(p.Item("น่าเย็ด"))
            End If
        End If

 
        If True = True Then
            Dim lstEPDObj As New List(Of Object)
            Dim Columns As Integer = 4

            For r As Integer = 0 To 10
                Dim epdObj As New ExpandoObject()
                Dim p = TryCast(epdObj, IDictionary(Of String, Object))
                For c As Integer = 0 To Columns - 1
                    p("dynObj" + c.ToString()) = "Value-" + r.ToString()
                Next
                lstEPDObj.Add(epdObj)
            Next

            If lstEPDObj.Count > 0 Then
                MsgBox(lstEPDObj(7).dynObj2()) 'Result Value-7
                MsgBox(lstEPDObj(3).น่าเย็ด())
            End If

        End If



จริงฯแล้วจุดประสงค์หลัก ผมต้องการเอาไปใช้งานกับ WebAPI/JavaScript Client
และคนที่จะเขียนตรงนี้ไม่ใช่ผม ผมจึงต้องสร้างรูปแบบขึ้นมา
คนที่จะเขียน ไม่มีความรู้ห่าอะไรเลย HTML/CSS/JavaScript/C#/VB/etc และไม่ได้เขียนโปรแกรมาหลายสิบปีแล้ว

แต่สิ่งที่เขามีคือ เคยเขียน FoxPro/Visual FoxPro และ มีใจ/มีหัวใจ
--- เขียน SQL Query ได้คล่องแคล่วปานสายน้ำไหล
--- มีความรู้ด้านบัญชีอย่างดีเลิศ มีเมียเป็นนักบัญชี

ผมจะใช้องค์ความรู้ทั้งหมดที่ผมมีถ่ายทอดให้เขา โดยใช้เวลาไม่เกิน 7 วัน เขาน่าจะช่วยผมเขียนโปรแกรมได้ดี/ดีมาก/ดีสุดสุด

ผมสร้างคนขึ้นมาได้ ผมต้องใส่จิตวิญญาณลงไปได้ด้วยเช่นกัน ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-28 05:31:50 By : หน้าฮี
 


 

No. 29

Guest


Quote:
https://www.patreon.com/posts/360-spin-view-js-27068163

Quote:
https://www.youtube.com/watch?v=2DXZMLbrSME


เห็นแค่นี้ คิดได้ร้อยแปดพันเก้า สักวันหนึ่งเหอะ
จะเอาไปเล่นกับ PLC
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-28 06:28:22 By : หน้าฮี
 


 

No. 30

Guest


@ท่านพระยาเทพ, มหาท่าน Chaidhanan

รูปงานที่ทำ ผมเอามาลง มันก็แค่เสี้ยวเดียว มันทำให้เสียวและทำให้ Profile ดูดีขึ้นจริงหรือ? +55555

ขาดเหลืออะไร? มีอะไรจะขอผมไหม? อทิเช่น UnDocuments
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-30 10:22:11 By : หน้าฮี
 


 

No. 31

Guest


คนที่จะ เกษียณ ในปีนี้ (60)
อายุน้อยกว่าผมหลายปี

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-30 10:25:41 By : หน้าฮี
 


 

No. 32

Guest


ผมได้มาหนึ่งคนแล้ว ช้างป่าอยุ่ในดง อายุมากกว่าผม 2 ปี


แน่นอนว่า ผมต้องถ่ายทอดองค์ความรู้ทั้งหมดลงไปให้ได้ โดยใช้เวลาน้อยที่สุด มากสุดคือ 7 วัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-30 10:27:56 By : หน้าฮี
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : [หน้าฮี] "Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:..." แก้ไขอย่างไร
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม , โปรแกรมเจ้ามือหวย

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2019 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 08-9968-0655 อัตราราคา คลิกที่นี่