PDA

View Full Version : نحوهی ایجاد کلاس



بیتافرهی
یک شنبه 24 خرداد 1388, 11:47 صبح
سلام
آیا نحوه ی ساختن و کدنویسی کلاس در asp.net با c# فرق می کند؟
من قبلا توی c# کلاس می ساختم ،دارای NAME SPACE بود ولی حالا توی ASP.NET ،ندارد.
مثلا در کلاس زیر :

using System;
using System.Collections.Generic;
using System.Text;

namespace iso10
{
public class TestTableClass
{
public int _Code;
public string _CompanyName;
public string _Model;
public string _FullData;


public int Code
{
get { return _Code; }
set { _Code = value; }
}
public string CompanyName
{
get { return _CompanyName; }
set { _CompanyName = value; }
}
public string Model
{
get { return _Model; }
set { _Model = value; }
}
public string FullData
{
get { return _FullData; }
set { _FullData = value; }
}

}//////end public class TestTableClass
[Serializable()]
public class TestTableClassList : List<TestTableClass>
{ }
}///////end namespace iso10
من کلاس بالا را با نام TestTableClass.cs ،در فولدر APP_CODE ایجاد کردم(مطمئن نیستم،در چه شاخه ای باید دقیقا این کلاس را ایجاد کنم،با توجه به اینکه در شاخه های مختلف،کدهای متفاوت داد،حتی در شاخه ی اصلی اجازه ی ایجاد کلاس نداد!)
وقتی کد زیر را می نویسم خطا می گیره:

public TestTableClassList listComboBox_idcomputer = new TestTableClassList();//class
کجای کار را اشتباه می کنم؟
*با توجه به اینکه کلاس هایی که در asp.net ایجاد می کنیم ،دارای namespace نیست،من این دو خط بالا را که با رنگ قرمز مشخص کردم،کجا باید بنویسم؟؟

__H2__
یک شنبه 24 خرداد 1388, 13:40 عصر
سلام
کدهای شما به ظاهر مشکلی ندارند ولی کمی عرف در 2008 تغییر کرده...

1- مطمئن شوید که وقتی فایل سورس را select میکنید در پنجره properties گزینه BuildAction روی Compile تنظیم شده باشد.

2- در زمان newس ازی کلاس namespace را هم ذکر کنید...


public iso10.TestTableClassList listComboBox_idcomputer = new iso10.TestTableClassList();//


3- در صورت ادامه مشکل لطفاً متن انگلیسی خطا را هم اینجا قرار دهید.

بیتافرهی
یک شنبه 24 خرداد 1388, 17:34 عصر
فکر کنم،منظورمو خوب بیان نکردم.مشکل من اینجاست که در برنامه های تحت وب وقتی می خوایم کلاس درست کنیم،namespace وجود ندارد و فقط کد زیر است:

public class TestTableClass
{
public TestTableClass()
{

}
}

ولی در کدی که من در پست اول گذاشتم(اون کلاس را در C# نوشته بودم)،من اون دوخط قرمز رنگ را در فضای namespace نوشتم،
1-حالا مشکل اینجاست که وقتی در برنامه ی تحت وب ،namespace نداریم،اون دو خط قرمز رنگ را کجا بنویسم؟
2-مگر میشود ،کلاسی را که در #C درست کردیم،در یک برنامه ی تحت وب استفاده کنیم؟

بیتافرهی
یک شنبه 24 خرداد 1388, 17:56 عصر
2- در زمان newس ازی کلاس namespace را هم ذکر کنید...
در این صورت موقع استفاده از کلاس ،با توجه به روش شما برای کد زیر،خطایی را که داد،ضمیمه کردم:

iso10.TestTableClassList temp = new iso10.TestTableClassList();
temp._Code = int.Parse(reader["crs_id"].ToString());
temp._CompanyName = reader["computer_name"].ToString().Trim();
temp._Model = reader["operator_name"].ToString().Trim();
temp._FullData = reader["id"].ToString() + " " +
reader["computer_name"].ToString().Trim() + " " + reader["operator_name"].ToString().Trim();

پیغام خطا:

Error 9 'iso10.TestTableClassList' does not contain a definition for '_Code' and no extension method '_Code' accepting a first argument of type 'iso10.TestTableClassList' could be found (are you missing a using directive or an assembly reference?) C:\Inetpub\uni_20_khordad\PRESENTED_LESSONS_OSTAD. aspx.cs

__H2__
یک شنبه 24 خرداد 1388, 18:23 عصر
سلام
من الان یک پروزه نمونه خالی در C#.Net2008 ایجاد کردم و یک کلاس با namespace طولانی به ان اضافه کردم و در صفحات به ان ارجاع دادم و از آن استفاده کردم و پروژه بدون مشکل کامپایل و اجرا میشود (گرچه کار خاصی نمیکند.)

از پسوست پست دانلود کنید.


-حالا مشکل اینجاست که وقتی در برنامه ی تحت وب ،namespace نداریم،اون دو خط قرمز رنگ را کجا بنویسم؟
2-مگر میشود ،کلاسی را که در #C درست کردیم،در یک برنامه ی تحت وب استفاده کنیم؟
1- مگر همانجا که الآن نوشته اید چه مشکلی دارد؟
2- مشکلی ندارد!


...که در برنامه های تحت وب وقتی می خوایم کلاس درست کنیم،namespace وجود ندارد...
معنی این را هم متوجه نشدم! برایتان ممکن است حداقل یک پروزه ساده مثل همین که من آپلود کردم، آپلود کنید تا دقیق بتوانم بگویم مشکل کجا است؟

amirjalili
دوشنبه 25 خرداد 1388, 10:40 صبح
شما چرا namespace رو خودتون نمینویسید؟