অ্যান্ড্রয়েড অংশ 2 এর জন্য সি # শিখুন: ক্লাস এবং লুপগুলি

লেখক: John Stephens
সৃষ্টির তারিখ: 24 জানুয়ারি 2021
আপডেটের তারিখ: 1 জুলাই 2024
Anonim
সি ভাষার পরিচিতি - পার্ট 2 | সি ভাষা টিউটোরিয়াল | মিঃ শ্রীনিবাস দ্বারা
ভিডিও: সি ভাষার পরিচিতি - পার্ট 2 | সি ভাষা টিউটোরিয়াল | মিঃ শ্রীনিবাস দ্বারা

কন্টেন্ট


সি # শেখার বিষয়ে এই অ্যান্ড্রয়েড টিউটোরিয়াল সিরিজের একটি অংশে আমরা সি # প্রোগ্রামিংয়ের পরম বেসিকগুলির দিকে নজর রেখেছি। আমরা পদ্ধতিগুলি (নির্দিষ্ট কার্য সম্পাদন করে এমন কোডের গোষ্ঠীগুলি), কিছু বেসিক সিনট্যাক্স (যেমন আধা কলোনগুলির প্রয়োজনীয়তা), ভেরিয়েবলগুলি (ডেটা সংরক্ষণ করে রাখার ধারক) এবং "যদি স্টেটমেন্টগুলি" প্রবাহ নিয়ন্ত্রণের জন্য (মানগুলির উপর নির্ভরশীল শাখা কোড) coveredেকে রেখেছি ভেরিয়েবলের)। পদ্ধতিগুলির মধ্যে আর্গুমেন্ট হিসাবে স্ট্রিংয়ের মতো ভেরিয়েবলগুলি কীভাবে পাস করতে হয় তা আমরা দেখেছি।

আপনার যদি ফিরে এসে না পড়ে থাকে তবে আপনার ফিরে যাওয়া উচিত।

এই মুহুর্তে, আপনি কিছু বেসিক কনসোল অ্যাপ্লিকেশন তৈরি করতে সক্ষম হবেন, যেমন কুইজ, অ্যাপ্লিকেশন যা ডেটা সংরক্ষণ করে বা ক্যালকুলেটরগুলি।

দ্বিতীয় খণ্ডে, আমরা আরও কিছু উচ্চাভিলাষী হতে চলেছি, আরও কয়েকটি বেসিক যেমন - লুপগুলি coveringাকতে এবং ক্লাসগুলি কীভাবে তৈরি করতে এবং তার সাথে ইন্টারঅ্যাক্ট করতে হবে তা অন্বেষণ করছি। এর অর্থ আমরা অ্যান্ড্রয়েড বিকাশে একটি ছুরিকাঘাত করা শুরু করতে সক্ষম হব এবং কীভাবে এই ব্যবধানটি পূরণ করতে পারি তা দেখতে পাব। আপনি যদি সত্যিই সি # শিখতে চান তবে পড়া চালিয়ে যান!


ক্লাস এবং অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং বোঝা

সংক্ষিপ্তভাবে প্রথম অংশে, আমরা অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ের মূল বিষয়গুলি ব্যাখ্যা করেছি, যা "বস্তুগুলি" বর্ণনার জন্য "ক্লাস" ব্যবহার করে ভাষাগুলির চারপাশে ঘোরাফেরা করে। একটি অবজেক্ট এমন একটি ডেটা টুকরা, যা অনেকগুলি বিষয় উপস্থাপন করতে পারে। এটি বসন্তের মতো গেমের জগতের একটি আক্ষরিক অবজেক্ট হতে পারে, বা এটি এমন কোনও বিমূর্ত কিছু হতে পারে, যেমন কোনও পরিচালক যেমন প্লেয়ারের স্কোর পরিচালনা করে।

একটি একক শ্রেণি একাধিক অবজেক্ট তৈরি করতে পারে। সুতরাং আপনি একটি "শত্রু" শ্রেণি লিখতে পারেন, তবে খারাপ লোকদের দ্বারা পূর্ণ একটি সম্পূর্ণ স্তর তৈরি করতে সক্ষম হবেন। এটি অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ব্যবহারের অন্যতম বড় সুবিধা। অন্যথায়, প্রচুর শত্রুদের আচরণ পরিচালনা করার একমাত্র উপায় হ'ল প্রচুর স্বতন্ত্র পদ্ধতি ব্যবহার করা, প্রত্যেককেই খারাপ পরিস্থিতিতে কীভাবে বিভিন্ন পরিস্থিতিতে আচরণ করা উচিত তার নির্দেশাবলী সম্বলিত।


যদি আপনার মাথাটি চারপাশে আনতে এটি এখনও খানিকটা জটিল হয় তবে আপনার সত্যিকারের যা জানা দরকার তা হ'ল বস্তুর বৈশিষ্ট্য এবং আচরণ রয়েছে। এটি ঠিক বাস্তব বস্তুর মতো। উদাহরণস্বরূপ, একটি খরগোশের আকার, রঙ এবং নামের মতো বৈশিষ্ট্য রয়েছে; এবং এর ঝাঁপ দেওয়া, বসার এবং খাওয়ার মতো আচরণ রয়েছে। মূলত, বৈশিষ্ট্যগুলি হল ভেরিয়েবল এবং আচরণগুলি হল পদ্ধতি।

আমরা শেষ পাঠে যে প্রোগ্রামটি তৈরি করেছি সেটিও একটি শ্রেণির উদাহরণ। আমরা এখানে যে "অবজেক্ট" বর্ণনা করছি তা হ'ল একধরনের পাসওয়ার্ড নিয়ন্ত্রণ ব্যবস্থা। এটির সম্পত্তিটি হ'ল স্ট্রিং ইউজারনেম এবং এটির আচরণটি হ'ল নিউমঠোদ (ব্যবহারকারীর নাম পরীক্ষা করে তাদের অভিবাদন জানাচ্ছি)।

যদি তা হয়এখনো কিছুটা বিভ্রান্তিকর, আমাদের মাথা ঘুরে দেখার একমাত্র উপায় হ'ল একটি নতুন ক্লাস তৈরি করা বা নিজেরাই!

একটি নতুন ক্লাস তৈরি করা হচ্ছে

আপনি যদি সি # শিখতে চলেছেন তবে নতুন ক্লাসগুলি কীভাবে তৈরি করবেন তা আপনার জানতে হবে। ভাগ্যক্রমে, এটি খুব সহজ। প্রজেক্ট মেনু আইটেমটি ক্লিক করুন এবং তারপরে "+ ক্লাস যুক্ত করুন" নির্বাচন করুন।

"সি #" চয়ন করুন এবং এটিকে "খরগোশ" বলুন We আমরা ধারণামূলক খরগোশ তৈরি করতে এই শ্রেণিটি ব্যবহার করব। মুহুর্তের মধ্যে আমি কী বোঝাতে চাইছি তা আপনি দেখতে পাবেন।

আপনি যদি ডানদিকে নিজের সলিউশন এক্সপ্লোরারটি পরীক্ষা করে থাকেন তবে দেখতে পাবেন যে প্রোগ্রামব্যাকের ঠিক নীচে একটি নতুন ফাইল রবিট.সি.এস তৈরি করা হয়েছে। ভাল হয়েছে - আপনি অ্যান্ড্রয়েডের জন্য সি # শিখতে চান কিনা তা জানার জন্য এটি সবচেয়ে গুরুত্বপূর্ণ বিষয়গুলির মধ্যে একটি!

নতুন রবিট.সি.এস ফাইলটিতে আগের মতো কিছু "বয়লারপ্লেট" কোড রয়েছে। এটি এখনও একই নেমস্পেসের সাথে সম্পর্কিত এবং এটির ফাইলের মতো একই নামে একটি বর্গ রয়েছে।

নেমস্পেস কনসোলএপ 2 {শ্রেণি খরগোশ {}}

এখন আমরা আমাদের খরগোশকে কিছু সম্পত্তি দেব যা আমরা "কনস্ট্রাক্টর" বলি।

কনস্ট্রাক্টর একটি ক্লাসে এমন একটি পদ্ধতি যা বস্তুর সূচনা করে, যখন আমরা এটি তৈরি করি তখন এর বৈশিষ্ট্যগুলি সংজ্ঞায়িত করার অনুমতি দেয়। এই ক্ষেত্রে, আমরা যা বলতে যাচ্ছি তা এখানে:

নেমস্পেস কনসোলএপ 2 {শ্রেণি খরগোশ {পাবলিক স্ট্রিং রাবিটনেম; পাবলিক স্ট্রিং খরগোশ; পাবলিক ইন রবিটএজ; পাবলিক ইন র্যাবিটওয়েট; পাবলিক খরগোশ (স্ট্রিংয়ের নাম, স্ট্রিংয়ের রঙ, ইনট এজ, ইনট ওয়েট) {রাবিটনেম = নাম; খরগোশ রঙ = রঙ; খরগোশ = বয়স; রাবিটওয়েট = ওজন; }}}

এটি আমাদেরকে আলাদা শ্রেণি থেকে একটি নতুন খরগোশ তৈরি করতে এবং এর বৈশিষ্ট্যগুলি আমাদের যেমন সংজ্ঞায়িত করতে দেয়:

খরগোশ রাবিট 1 = নতুন খরগোশ ("জেফ", "বাদামী", 1, 1);

এখন আমি বুঝতে পারছি পিছনের ওজনে সম্ভবত দশমিকের অনুমতি দেওয়ার জন্য একটি ভাসা বা ডাবল হওয়া উচিত ছিল, তবে আপনি ধারণাটি পেয়ে যান। আমরা আমাদের খরগোশকে নিকটতম পুরো সংখ্যায় ঘুরতে যাচ্ছি।

আপনি আপনার খরগোশটি লেখার সাথে সাথে দেখতে পাবেন, আপনাকে সঠিক যুক্তিগুলি পাস করার জন্য অনুরোধ করা হবে। এইভাবে, আপনার ক্লাসটি প্রায় কোডের একটি অংশে পরিণত হয়েছে।

বিশ্বাস করুন বা না করুন, এই কোডটি একটি খরগোশ তৈরি করেছে! আপনি আপনার খরগোশ দেখতে পাচ্ছেন না কারণ আমাদের কোনও গ্রাফিক নেই, তবে এটি সেখানে রয়েছে।

এবং এটি প্রমাণ করতে আপনি এখন এই লাইনটি ব্যবহার করতে পারেন:

Console.WriteLine (Rabbit1.RabbitName);

এটি তখন আপনাকে সবেমাত্র তৈরি খরগোশের নাম বলবে!

আমরা একইভাবে আমাদের খরগোশের ওজন বাড়াতে পারি:

Rabbit1.RabbitWeight ++,; কনসোল.ব্রাইটলাইন (র‌্যাবিট 1. র‌্যাবিটনাম + "" ওজন "+ রাবিট 1। র‌্যাবিটওয়েট +" কেজি ");

এখানে নোট করুন যে কোনও কিছুর শেষে "++" যুক্ত করা তার ক্রমবর্ধমানভাবে তার মান বাড়িয়ে তুলবে (আপনি "র্যাবিটওয়েট = রাবিটওয়েট + 1 "ও লিখতে পারেন)।

যেহেতু আমাদের ক্লাসটি আমাদের পছন্দমতো খরগোশ তৈরি করতে পারে, আমরা তাদের নিজস্ব বৈশিষ্ট্য সহ প্রচুর বিভিন্ন খরগোশ তৈরি করতে পারি।

আচরণ যুক্ত করা

এরপরে আমরা আমাদের খরগোশকে একরকম আচরণ দেওয়া বেছে নিতে পারি। এই ক্ষেত্রে, আসুন তাদের খেতে দিন।

এটি করার জন্য, আমরা "ইট" নামে একটি সরকারী পদ্ধতি তৈরি করব এবং এটি খাওয়ার শব্দ করবে, পাশাপাশি খরগোশের ওজন বাড়িয়ে তুলবে:

সর্বজনীন শূন্যতা খাওয়া () so কনসোল.উইটলাইন (র‌্যাবিটনেম + ": নিবল প্রবল!"); RabbitWeight ++,; }

মনে রাখবেন, "সর্বজনীন" অর্থ শ্রেণীর বাইরে থেকে অ্যাক্সেসযোগ্য এবং "অকার্যকর" অর্থ পদ্ধতিটি কোনও ডেটা ফেরায় না।

তারপরে, প্রোগ্রাম.সি এর ভিতরে থেকে, আমরা এই পদ্ধতিটি কল করতে সক্ষম হব এবং এটি আমাদের পছন্দসই খরগোশকে খাওয়া এবং আরও বড় করে তুলবে:

কনসোল.ব্রাইটলাইন (র‌্যাবিট 1. র‌্যাবিটনাম + "" ওজন "+ রাবিট 1। র‌্যাবিটওয়েট +" কেজি "); Rabbit1.Eat (); Rabbit1.Eat (); Rabbit1.Eat (); কনসোল.ব্রাইটলাইন (র‌্যাবিট 1. র‌্যাবিটনাম + "" ওজন "+ রাবিট 1। র‌্যাবিটওয়েট +" কেজি ");

এটি জেফকে তিনবার খেতে বাধ্য করবে, তারপরে আমরা এটি শুনব এবং দেখতে পাব যে সে আরও বড় হয়েছে! আমাদের যদি এই দৃশ্যে অন্য খরগোশ থাকে তবে তারাও খেতে পারত!

কনসোল.ব্রাইটলাইন (র‌্যাবিট 1. র‌্যাবিটনাম + "" ওজন "+ রাবিট 1। র‌্যাবিটওয়েট +" কেজি "); কনসোল.ওরাইটলাইন (র‌্যাবিট ২. র‌্যাবিটনেম + "ওজন" + রাবিট ২. র‌্যাব্বইয়েট + "কেজি"); Rabbit1.Eat (); Rabbit1.Eat (); Rabbit2.Eat (); Rabbit2.Eat (); Rabbit1.Eat (); কনসোল.ব্রাইটলাইন (র‌্যাবিট 1. র‌্যাবিটনাম + "" ওজন "+ রাবিট 1। র‌্যাবিটওয়েট +" কেজি "); কনসোল.ওরাইটলাইন (র‌্যাবিট ২. র‌্যাবিটনেম + "ওজন" + রাবিট ২. র‌্যাব্বইয়েট + "কেজি");

এটি খরগোশের মত

এটি প্রচুর পরিমাণে অবজেক্ট পরিচালনা করার জন্য বিশেষভাবে মার্জিত উপায় নয়, কারণ প্রতিটি খরগোশের জন্য ম্যানুয়ালি আমাদের কমান্ডগুলি লিখতে হবে এবং যতটা আমরা চাই যত গতিতে খরগোশের সংখ্যা বাড়াতে পারি না। আমরা কেবল সি # শিখতে চাই না - আমরা কীভাবে পরিষ্কার সি # কোড লিখতে শিখতে চাই!

এই কারণেই আমরা একটি তালিকা ব্যবহার করতে পারি। একটি তালিকা একটি সংগ্রহ; ভেরিয়েবল নিজেই মূলত অন্যান্য ভেরিয়েবলের রেফারেন্স ধারণ করে। এই ক্ষেত্রে, আমরা খরগোশের একটি তালিকা তৈরি করতে পারি এবং সুসংবাদটি হ'ল এটি বোঝা খুব সহজ:

তালিকা খরগোশ তালিকা = নতুন তালিকা(); র‌্যাবিটলিস্ট.এড (নতুন খরগোশ ("জেফ", "বাদামী", 1, 1)); রাবিটলিস্ট.এড (নতুন খরগোশ ("স্যাম", "সাদা", 1, 2));

এটি আগের মতো নতুন খরগোশ তৈরি করে তবে একই সাথে খরগোশটিকে তালিকায় যুক্ত করে। সমানভাবে, আমরা এটি বলতে পারি:

খরগোশ রাবিট 3 = নতুন খরগোশ ("জনি", "কমলা", 1, 1); RabbitList.Add (Rabbit3);

যেভাবেই হোক, একটি অবজেক্ট তৈরি করা হয়েছে এবং তালিকায় যুক্ত করা হয়েছে।

আমরা আমাদের খরগোশের তালিকা থেকে সুবিধামত এবং মার্জিতভাবে তথ্যগুলি ফেরত দিতে পারি:

ফরচ (র‌্যাবিটলিস্টে র‌্যাব র‌্যাব) {কনসোল.ওরাইটলাইন (র‌্যাবিট.র্যাবিটনেম + "ওজন" + রাবিট।র্যাবিটওয়েট + "কেজি"); }

আপনি যেমনটি বের করতে সক্ষম হতে পারেন, "ফরচ" অর্থ তালিকার প্রতিটি আইটেমের জন্য আপনি একবারে একটি পদক্ষেপ পুনরাবৃত্তি করেন। আপনি আপনার তালিকা থেকে এই জাতীয় তথ্য পুনরুদ্ধার করতে পারেন:

RabbitList.Eat ();

এখানে "1" সূচক, যার অর্থ আপনি অবস্থানের একটিতে সঞ্চিত তথ্য উল্লেখ করছেন। যেমনটি ঘটে, আসলে এটি দ্বিতীয় যদিও আপনি খরগোশ যুক্ত করেছেন: কারণ প্রোগ্রামিংয়ের তালিকাগুলি সর্বদা 0 থেকে শুরু হয়।

ফিবানচি

আপনি যদি এখনও অনুমান না করে থাকেন, তবে আমরা এখন ফিবোনাচি ক্রম তৈরি করতে এই সমস্ত তথ্য ব্যবহার করব। সর্বোপরি, আপনি যদি অ্যান্ড্রয়েডের জন্য সি # শিখেন তবে আপনার অবশ্যই সেই তত্ত্বটি দিয়ে আকর্ষণীয় কিছু করতে সক্ষম হওয়া উচিত!

ফিবোনাচি সিকোয়েন্সে খরগোশ একটি ঘরে বন্ধ করে বংশবৃদ্ধি করা হয়। তারা এক মাস পরে পুনরুত্পাদন করতে পারে, যার পর্যায়ে তারা যৌন পরিপক্ক হয় (এটি সঠিক খরগোশের জীববিজ্ঞান কিনা তা আমি নিশ্চিত করতে পারি না)। যদি প্রতিটি খরগোশ দম্পতি তখন থেকে প্রতি মাসে একবার দু'টি সন্তানের জন্ম দিতে পারে তবে ক্রমটি কেমন দেখাচ্ছে তা এখানে:

1,1,2,3,5,8,13,21,34

ম্যাজিক্যালি, ক্রমের প্রতিটি সংখ্যা হ'ল পূর্ববর্তী দুটি সংখ্যার মান এক সাথে যুক্ত। বিজ্ঞানের মতে, এটি এক বিশাল ব্যাপার deal

দুর্দান্ত জিনিসটি হ'ল আমরা সেই প্রতিরূপ তৈরি করতে পারি।

প্রথমত, আমাদের একটি নতুন ধারণাটি চালু করতে হবে: লুপ। কোনও শর্ত পূরণ না হওয়া পর্যন্ত এটি কেবল একই কোডটিকে বারবার পুনরাবৃত্তি করে। “For” লুপটি আমাদের একটি ভেরিয়েবল তৈরি করে, আমাদের যে শর্তগুলি পূরণ করতে চান সেটি নির্ধারণ করে এবং তারপরে অপারেটিং করে - এটি বন্ধনীর অভ্যন্তরের সমস্ত সংজ্ঞায়িত করে:

(অবধি মাস = 0; মাস <100; মাস ++) {// কিছু করুন}

সুতরাং আমরা মাস হিসাবে একটি পূর্ণসংখ্যা তৈরি করছি এবং এটি 100 এর সমান হওয়া অবধি লুপিং করছি Then তারপরে আমরা মাসের সংখ্যা এক এক করে বাড়িয়ে দেব।

এটি কীভাবে ফিবোনাকির ক্রম হতে পারে তা দেখতে চান? দেখ:

নেমস্পেস কনসোলএপ 2 {শ্রেণি প্রোগ্রাম {স্ট্যাটিক শূন্যস্থানীয় মেইন (স্ট্রিং আর্টস) {তালিকা খরগোশ তালিকা = নতুন তালিকা(); রাবিটলিস্ট.এড (নতুন খরগোশ ("জেফ", "বাদামী", 0, 1)); রাবিটলিস্ট.এড করুন (নতুন খরগোশ ("স্যাম", "সাদা", 0, 1)); (অবধি মাস = 0; মাস <10; মাস ++) {প্রথম ফার্স্ট র‌্যাবিট = 0; int timesToReproduce = 0; foreach (খরগোশের তালিকায় var খরগোশ) so কনসোল.উরাইট ("আর"); if (Rabbit.RabbitAge> 0) {if (firstRabbit == 0) {firstRabbit = 1; } অন্য {প্রথম র‌্যাবিট = 0; timesToReproduce ++,; }} খরগোশ.রবিটএজ ++; } এর জন্য (int i = 0; i <timesToReproduce; i++) bit র্যাবিটলিস্ট.এড (নতুন খরগোশ ("নিউবাবিরাবিট", "বাদামী", 0, 1)); রাবিটলিস্ট.এড (নতুন খরগোশ ("নিউবাবিরাবিট", "বাদামী", 0, 1)); Console.Write ( "R"); Console.Write ( "R"); So কনসোল.ওরাইটলাইন ("---" "রবিটলিস্ট। অ্যাকাউন্ট / 2 +" খরগোশের জোড়া! "); Console.WriteLine ( ""); } কনসোল.ওরাইটলাইন ("সমস্ত সম্পন্ন!"); Console.ReadKey (); }}}

ঠিক আছে, এটা আমার চেয়ে কঠিন ছিল!

আমি এই সমস্ত কিছুর মধ্য দিয়ে যাচ্ছি না, তবে আপনি ইতিমধ্যে যা শিখেছেন তা ব্যবহার করে আপনার এটিকে বিপরীত করতে সক্ষম হওয়া উচিত।

এটি করার আরও অবশ্যই মার্জিত উপায় রয়েছে - I’m no গণিতবিদ। তবে আমি মনে করি এটি মোটামুটি মজাদার অনুশীলন এবং আপনি একবার এটি করতে পারলে আপনি বড় সময়ের জন্য প্রস্তুত।

আমি অন্য কোনও উপায় দেখতে ভালোবাসি, যাই হোক!

আমরা কোথায় এখানে থেকে যান? অ্যান্ড্রয়েডের জন্য সি # কীভাবে শিখবেন

আপনার বেল্ট অধীনে যে সমস্ত জ্ঞান সঙ্গে, আপনি বড় জিনিস শুরু করতে প্রস্তুত। বিশেষত, আপনি জামরিন বা ইউনিটিতে সি # দিয়ে অ্যান্ড্রয়েড প্রোগ্রামিংয়ে ছুরিকাঘাত করতে প্রস্তুত।

এটি ভিন্ন কারণ আপনি গুগল, মাইক্রোসফ্ট এবং ইউনিটির সরবরাহকৃত ক্লাস ব্যবহার করছেন। আপনি যখন "রিগডবডি 2 ডি। বেগ" এর মতো কিছু লেখেন তখন আপনি যা করছেন তা কোনও শ্রেণীর কোনও সম্পত্তি অ্যাক্সেস করা is নামক RigidBody2D। এটি ঠিক একই রকম কাজ করে, কেবলমাত্র পার্থক্য হ'ল আপনি রিগিডবডি 2 ডি দেখতে পাচ্ছেন না কারণ আপনি নিজেরাই তৈরি করেন নি।

আপনার বেল্টের নীচে এই সি # দিয়ে, আপনার এই বিকল্পগুলির মধ্যে যে কোনও একটিতে ঝাঁপিয়ে পড়তে প্রস্তুত হওয়া উচিত এবং যখন কী চলছে তা বোঝার ক্ষেত্রে এটি শুরু করতে হবে:

  • কিভাবে জামারিন দিয়ে একটি অ্যান্ড্রয়েড অ্যাপ তৈরি করতে হয় make
  • ইউনিটির সাথে 7 মিনিটের মধ্যে আপনার প্রথম অ্যান্ড্রয়েড গেমটি তৈরি করুন

আগত পাঠে, আমরা কীভাবে ইউ-টার্ন নিতে পারি এবং এর পরিবর্তে উইন্ডোজ অ্যাপ্লিকেশনগুলি তৈরি করতে এটি কীভাবে ব্যবহার করতে পারি তাও আমরা দেখব!

গুগল পিক্সেল 4 লঞ্চটি এসেছিল এবং চলে গেছে, তবে আমরা এই ইভেন্টে গুজব 5 জি পিক্সেলটি দেখতে পাইনি। সরানো মানে গুগল তার প্রথম 5 জি ফোনটি প্রকাশের জন্য 2020 সাল পর্যন্ত অপেক্ষা করতে পারে।...

গুগল পিক্সেল 4 ফোন সম্পর্কে আমাদের জানা থাকা আমরা ইতিমধ্যে জানি তবে গুগল অন্য হ্যান্ডসেটটিতে কাজ করছে বলে মনে হচ্ছে।সূত্র জানায় নিক্কেই এশিয়ান পর্যালোচনা গুগল একটি 5 জি পিক্সেল ফোনটি পরীক্ষা-নিরীক্ষ...

আপনি সুপারিশ