Yazar |
|
akgulozkan
istanbul
Kayıt: 12.12.2006 |
|
Sorum çok basit görünebilir ama ben düşündüm bir türlü cevabını bulamadım.
Soru(n)m şu:
Ben çalışma esnasında butona basarak bir nesne yaratmak istiyorum. Bu nesnenin standart özellikleri olmalı, -örneğin tıkladığım zaman bana bir mesaj versin- bu özelliklerin tamamı tüm yaratılan nesneler için geçerli olmalı. Yarattığımız nesnelerin sayısı önemli değil ama yaratma işleminden sonra bellekte bir yerde olmalı ve ben onlara istediğim zaman erişmeliyim.
Yeni yarattığım sınıftan global tanımlanan bir dizi içerisine atıp erişmeye çalıştım. Bunun dışında OOP mantığıyla daha örtüşen bir çözüm sunabilecek arkadaşlara şimdiden teşekkür ederim
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
static bir linkedlist , stack yada queue içerisnde nesneleri tutabilirsin. static bir dizi olsa onu gerektiğinde genişletmek için felan uğraşmak zorunda kalırsın.
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
istersen diğer yapılar içinde örnek yazabilirim.
class Program
{
private static Queue<Program> nesneler;
public static Queue<Program> Nesneler{
get { return nesneler; }
}
private Program(){
}
public static void nesneEkle(){
Program yeninesne = new Program();
nesneler.Enqueue(yeninesne); // NESLE EKLEME
}
public static Program nesneAl(){
return nesneler.Dequeue();
}
}
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
akgulozkan
istanbul
Kayıt: 12.12.2006 |
|
extreme yazdi | static bir linkedlist , stack yada queue içerisnde nesneleri tutabilirsin. static bir dizi olsa onu gerektiğinde genişletmek için felan uğraşmak zorunda kalırsın. |
dizide tutmanın dışında bir seçenek yok mu??
|
|
Yazar |
|
akgulozkan
istanbul
Kayıt: 12.12.2006 |
|
Dizinin istediğim elemanına zaten erişebliyorum.. Başka bir seçenek olamaz mı
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
akgulozkan yazdi | Dizinin istediğim elemanına zaten erişebliyorum.. Başka bir seçenek olamaz mı |
Sen nasıl bişey istiyosun .
class Program
{
private static int nesnesayisi = 0;
private static int diziBoyutu = 1;
private static Program[] nesnedizisi;
public Program[] Nesnedizisi{
get { return nesnedizisi; }
}
private static void diziGenislet(){
Program[] tempdizi = new Program[diziBoyutu];
for (int i = 0; i < diziBoyutu;i++ )
{
tempdizi[i] = nesnedizisi[i];
}
diziBoyutu *= 2;
nesnedizisi = new Program[diziBoyutu];
for (int i = 0; i < diziBoyutu/2; i++)
{
nesnedizisi[i] = tempdizi[i];
}
}
private Program(){
}
public void nesneEkle(){
if(nesnesayisi == diziBoyutu){
diziGenislet();
}
nesnedizisi[nesnesayisi] = new Program();
}
}
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
akgulozkan
istanbul
Kayıt: 12.12.2006 |
|
neyse galiba dizi mantığından başka bi yolu yok sağol burakcım
Not: Dizinin elemanlarına erişmede, dizinin boyutunun sınırlarında vs. sorunum yok. Sadece dizi, struct yada benzeri özelliklerinin dışında nasıl yapabiliriz diye sormuştum
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
akgulozkan yazdi | neyse galiba dizi mantığından başka bi yolu yok sağol burakcım
Not: Dizinin elemanlarına erişmede, dizinin boyutunun sınırlarında vs. sorunum yok. Sadece dizi, struct yada benzeri özelliklerinin dışında nasıl yapabiliriz diye sormuştum |
Abi garbage collector'u kapattıktan sonra nesnelerede tanımlayıcı binary bi kod gömüp işletim sistemine izin verdirip tüm ram'i taradıktan sonra dağınık böyle birbirinden kopmuş nesneler bulunabilir sanırım :D. Farklı bişey bende bulamadım
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
akgulozkan
istanbul
Kayıt: 12.12.2006 |
|
Hocam bi pictureBox nesnesi düşün butona bastıkça bunlardan yaratıcak ve ben üzerine gelip bu pictureBox ları taşıyabilmeliyim. Şimdi taşıma işlemlerini ıvırı zıvırı flan hep yapabiliyorum. Ama bunları yaparken yaratılan nesnelerin hepsi dizide tutuluyor. dizi dışında metodlara parametre olarak nesneyi atabileceğim bişey olabilr mi? fanteziye gerek yok
private void button1_Click(object sender, EventArgs e)
{
oz_box box1 = new oz_box();
box1.SetBounds(30,300,30,40);
box1.BackColor = Color.Blue;
this.Controls.Add(box1);
box1.MouseDown+=new MouseEventHandler(box1_MouseDown);
box1.MouseMove += new MouseEventHandler(box1_MouseMove);
box1.MouseUp += new MouseEventHandler(box1_MouseUp);
kutular[kutuIndex] = box1;
kutuIndex++;
}
yukarıdaki kodda diziye atıyorum. Ama mesela box1_MouseDown metoduna parametre almaya çalıştığım zaman problem yaşıyorum. Parametre alamıyorsam neden olabilir acba?
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
akgulozkan yazdi
Abi c# çakma ya. c++ olsa herşey elinde olur ama onuna yazmak eziyet
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
akgulozkan
istanbul
Kayıt: 12.12.2006 |
|
extreme yazdi | akgulozkan yazdi
Abi c# çakma ya. c++ olsa herşey elinde olur ama onuna yazmak eziyet |
çakma ya .Net çileri kızdıralım viva la assembly elektronikçi olarak başka ne diyebilirim
|
|
Yazar |
|
cicikus
istanbul
Kayıt: 02.02.2007 |
|
C # a yeni öğrenmeye başlayan biri olarak bu basit programın neden çalışmıyor? hata veriyor...
namespace ConsoleApplication2
{
class Program
{
string girilenDeger = Console.ReadLine();
int sayi = Convert.ToInt32(girilenDeger);
switch (sayi)
{
case 14: Console.WriteLine("ondort"); break;
case 15: Console.WriteLine("onbes"); break;
case 16:
{
//birden fazla satir kod yazilabilir
int x = sayi / 2;
Console.WriteLine(x);
};
break;
case 17: Console.WriteLine("onyedi"); break;
default: Console.WriteLine("gecersiz deger"); break;
}
}
}
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
cicikus yazdi
Kodu main metot içinde yazmanız lazım. İlk olarak main çalışır.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
string girilenDeger = Console.ReadLine();
int sayi = Convert.ToInt32(girilenDeger);
switch (sayi)
{
case 14: Console.WriteLine("ondort"); break;
case 15: Console.WriteLine("onbes"); break;
case 16:
{
//birden fazla satir kod yazilabilir
int x = sayi / 2;
Console.WriteLine(x);
};
break;
case 17: Console.WriteLine("onyedi"); break;
default: Console.WriteLine("gecersiz deger"); break;
}
}
}
}
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
cicikus
istanbul
Kayıt: 02.02.2007 |
|
class Program
{
static void Main(string[] args)
{
int sifre=123;
int denemeadeti=0;
do
{
Console.WriteLine("şifrenizi giriniz:");
int girilensifre=Convert.ToInt32(Console.ReadLine());
if(girilensifre==sifre)
{
Console.WriteLine("hoşgeldiniz:");
break;
}
else{
Console.WriteLine("Yanlışşifre giridniz:");
}
++denemeadeti;
while(denemeadeti<3);
}
}
hata veriyor ve hatalı çalışyor...
yardımcı olabilir misiniz?
|
|
Yazar |
|
tuuba
Bursa
Kayıt: 22.01.2007 |
|
C# ın # ını bile bilmem ama bu kod çalışıyor gözünü sevdiğimin JAVA sı
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class Program
{
static void Main(string[] args)
{
int sifre = 123;
int denemeadeti = 0;
do
{
Console.WriteLine("şifrenizi giriniz:");
int girilensifre = Convert.ToInt32(Console.ReadLine());
if (girilensifre == sifre)
{
Console.WriteLine("hoşgeldiniz:");
break;
}
else
Console.WriteLine("Yanlışşifre giridniz:");
++denemeadeti;
} while (denemeadeti < 3);
}
}
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| | | | | | | | | | | |