পিএইচপি প্যানেলে কোনও বস্তু তৈরি করা হয় না কেন?

আমি একটি সহজ প্রশ্ন আছে। যখন আমরা ("। Aspx.cs") পিছনে কোডে একটি বস্তু তৈরি করি, কেন এটি এএসপিএক্স পৃষ্ঠায় পাওয়া যায় না।

উদাহরণস্বরূপ, যদি আমার একটি ক্লাস থাকে (অন্য। সি ফাইলের মধ্যে থাকা এবং কোডটি পিছনে না থাকে) এবং সেই ক্লাসে আমার কাছে একটি সম্পত্তি আছে, তাহলে "নাম" বলুন।

namespace BLL.SO
{
    public class SOPriceList
    {
        private string _name;
        public string Name
        {
            get { return _name;}
            set { _name = value; }
        }
    }
}

এখন যখন আমি একটি বস্তু তৈরি করি, আংশিক শ্রেণীতে সুযোগ সহ "কোড" ("। Aspx.cs") এর পিছনে কোডে "obj" লিখুন।

namespace Modules.SO
{    
    public partial class PriceListRecordView : PageBase
    {
        SOPriceList obj = new SOPriceList();

        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }
}

এই বস্তু ব্যবহার করে "obj" আমি সম্পত্তি অ্যাক্সেস করতে পারেন। তাহলে কেন আমি এএসপিএক্স পৃষ্ঠার সম্পত্তি এই পদ্ধতিতে পেতে একই বস্তুর "obj" ব্যবহার করতে পারি না,

<%= obj.Name%>
0

1 উত্তর

এখন যখন আমি একটি বস্তু তৈরি করি তখন কোডে "obj" লিখুন   পিছনে ("। aspx.cs"), এই বস্তু ব্যবহার করে "obj" আমি সম্পত্তি অ্যাক্সেস করতে পারেন

এটা আপনি কিভাবে এই obj উদাহরণ তৈরি করেছেন তা পরিষ্কার নয় এটি কোডের মধ্যে একটি পদ্ধতির মধ্যে কিছু স্থানীয় ভেরিয়েবল যদি স্পষ্ট হয় যে এই ভেরিয়েবলের সুযোগটি পদ্ধতিটি তাই আপনি ASPX পৃষ্ঠায় এটি অ্যাক্সেস করতে পারবেন না।

ASPX পৃষ্ঠায় আপনি কেবলমাত্র বর্তমান ওয়েবফরমের সদস্যদের অ্যাক্সেস করতে পারেন যা কোডে বর্ণিত হয়েছে। তাই এই <�কোড> obj </কোড> কোথাও instantiated করা আবশ্যক। উদাহরণস্বরূপ আপনি আপনার কোডের মধ্যে একটি সম্পত্তি থাকতে পারে:

protected SomeType MyObj
{
    get 
    {
        return ... some instance
    }
}

এবং তারপর ASPX পৃষ্ঠায় আপনি এটি অ্যাক্সেস করতে পারে:

<%= MyObj.Name %>

আসুন আরেকটি উদাহরণ গ্রহণ করি যা আপনি Page_Load ইভেন্টে উদাহরণের জন্য সম্পত্তি আরম্ভ করতে পারবেন।

protected SomeType MyObj { get; private set; }

protected void Page_Load(object sender, EventArgs e)
{
    MyObj = new SomeType();
}
0
যোগ
বস্তু "obj" আংশিক বর্গ মধ্যে সুযোগ আছে, পিছনে কোড এবং কোন ফাংশন ভিতরে না।
যোগ লেখক Bibhu, উৎস
@ ডারিন ডিমিট্রোভ - আমার প্রশ্নটি আপডেট করেছে।
যোগ লেখক Bibhu, উৎস
@ ডারিন ডিমিট্রোভ - ধন্যবাদ, এটি কাজ করে :)। আমি আরো প্রশ্নটি চেষ্টা করেছি (কৌতূহলের বাইরে) পরিবর্তে জনসাধারণের মাধ্যমে, কিন্তু এটি কাজ করেনি, আপনি কি আমাকে এটি ব্যাখ্যা করতে পারেন।
যোগ লেখক Bibhu, উৎস
@ ডারিন দিমিত্রভ - ওহ হ্যাঁ তার কাজ, একটি মূর্খতা ভুল ছিল। আপনার অনেক অনেক ধন্যবাদ, আপনার কাছ থেকে অনেক শিখেছি। :)
যোগ লেখক Bibhu, উৎস
@ বিফুঃ এখানে কী সুরক্ষিত </কোড>, আপনি প্রাইভেট </কোড> সদস্যদের একটি প্রাপ্ত শ্রেণীতে অ্যাক্সেস করতে পারবেন না।
যোগ লেখক leppie, উৎস
আপনি যদি এই ফাংশনটির ভিতরে না থাকেন তাহলে আপনার কোডে বর্ণিত obj ঠিক কিভাবে তা দেখানো যায়? আপনি একটি সম্পত্তি বা কিছু আছে? এর দৃশ্যমানতা কি?
যোগ লেখক Darin Dimitrov, উৎস
ধন্যবাদ। এটা এখন পরিষ্কার। আপনার obj ভেরিয়েবলটি প্রাইভেট তাই আপনি এএসপিএক্স পৃষ্ঠায় অ্যাক্সেস করতে পারবেন না। এটি সুরক্ষিত করুন: সুরক্ষিত SOPriceList obj = নতুন SOPriceList (); । আপনি সম্ভবত জিজ্ঞাসা করতে পারেন: কিন্তু obj ব্যক্তিগত কেন? এবং উত্তর হল কারণ যখন আপনি একটি বর্গ একটি ক্ষেত্র ঘোষণা যখন একটি দৃশ্যমানতা সংশোধক উল্লেখ না C# কম্পাইলার অনুমান <�কোড> ব্যক্তিগত </কোড>।
যোগ লেখক Darin Dimitrov, উৎস
সর্বজনীন </কোড> কাজ করা উচিত। এটি সুরক্ষিত এর চেয়ে আরও বেশি দৃশ্যমানতা স্তর রয়েছে। আপনি যখন বলবেন তখন এটি কাজ করে নি </কোড> আপনি একটু বেশি নির্দিষ্ট হতে পারেন দয়া করে? কি কাজ না? আপনি একটি ত্রুটি বার্তা পেয়েছেন? যদি হ্যাঁ, আপনি কোন ত্রুটি বার্তা পেয়েছিলাম?
যোগ লেখক Darin Dimitrov, উৎস