1.32. C # structure

发布时间 :2023-10-12 23:00:06 UTC      

In C #, structures are value type data structures. It enables a single variable to store related data of various data types. struct keyword isused to create structures.

Structures are used to represent a record. Suppose you want to keep track ofbooks in the library. You may want to track the following properties of each book:

  • Title

  • Author

  • Subject

  • Book ID

1.32.1. Define the structure #

To define a structure, you must use the struct statement. struct statement defines a new data type with multiple members for the program.

For example, you can declare as follows Book structure:

struct Books
{
   public string title;
   public string author;
   public string subject;
   public int book_id;
};

The following program demonstrates the use of structures:

Example #

using System;
using System.Text;

struct Books
{
   public string title;
   public string author;
   public string subject;
   public int book_id;
};
public class testStructure
{
   public static void Main(string[] args)
   {
      Books Book1;        /* statement Book1,type are Books */
      Books Book2;        /* statement Book2,type are Books */
      /* book 1 explain */
      Book1.title = "C Programming";
      Book1.author = "Nuha Ali";
      Book1.subject = "C Programming Tutorial";
      Book1.book_id = 6495407;
      /* book 2 explain */
      Book2.title = "Telecom Billing";
      Book2.author = "Zara Ali";
      Book2.subject =  "Telecom Billing Tutorial";
      Book2.book_id = 6495700;
      /* print Book1 information */
      Console.WriteLine( "Book 1 title : {0}", Book1.title);
      Console.WriteLine("Book 1 author : {0}", Book1.author);
      Console.WriteLine("Book 1 subject : {0}", Book1.subject);
      Console.WriteLine("Book 1 book_id :{0}", Book1.book_id);
      /* print Book2 information */
      Console.WriteLine("Book 2 title : {0}", Book2.title);
      Console.WriteLine("Book 2 author : {0}", Book2.author);
      Console.WriteLine("Book 2 subject : {0}", Book2.subject);
      Console.WriteLine("Book 2 book_id : {0}", Book2.book_id);
      Console.ReadKey();
   }
}

When the above code is compiled and executed, it produces the following results:

Book 1 title : C Programming
Book 1 author : Nuha Ali
Book 1 subject : C Programming Tutorial
Book 1 book_id : 6495407
Book 2 title : Telecom Billing
Book 2 author : Zara Ali
Book 2 subject : Telecom Billing Tutorial
Book 2 book_id : 6495700

1.32.2. Characteristics of C # structure #

You have used a simple name called Books structure of. The structure in C # is different from that in traditional C or C++. The structure in C # has the following characteristics:

  • Structures can have methods, fields, indexes, properties, operator methods, and events.

  • Structure can define a constructor, but not a destructor. However, you cannot define a no-parameter constructor for a structure. The no-parameter constructor (default) is automatically defined and cannot be changed.

  • Unlike classes, structures cannot inherit other structures or classes.

  • Structures cannot be used as the infrastructure of other structures or classes.

  • Structure can implement one or more interfaces.

  • Structure members cannot be specified as abstract virtual or protected .

  • When you use the New operator creates a structure object, the appropriate constructor is called to create the structure. Unlike classes, structures can not be used New operator can be instantiated.

  • If not used New operator, the field is assigned and the object is used only after all fields have been initialized.

1.32.3. Vs-like structure #

There are several basic differences between classes and structures:

  • The class is a reference type, and the structure is a value type.

  • Structure does not support inheritance.

  • Structure cannot declare a default constructor.

In response to the above discussion, let’s rewrite the previous example:

Example #

using System;
using System.Text;

struct Books
{
   private string title;
   private string author;
   private string subject;
   private int book_id;
   public void setValues(string t, string a, string s, int id)
   {
      title = t;
      author = a;
      subject = s;
      book_id =id;
   }
   public void display()
   {
      Console.WriteLine("Title : {0}", title);
      Console.WriteLine("Author : {0}", author);
      Console.WriteLine("Subject : {0}", subject);
      Console.WriteLine("Book_id :{0}", book_id);
   }
};
public class testStructure
{
   public static void Main(string[] args)
   {
      Books Book1 = new Books(); /* statement Book1,type are Books */
      Books Book2 = new Books(); /* statement Book2,type are Books */
      /* book 1 explain */
      Book1.setValues("C Programming",
      "Nuha Ali", "C Programming Tutorial",6495407);
      /* book 2 explain */
      Book2.setValues("Telecom Billing",
      "Zara Ali", "Telecom Billing Tutorial", 6495700);
      /* print Book1 information */
      Book1.display();
      /* print Book2 information */
      Book2.display();
      Console.ReadKey();
   }
}

When the above code is compiled and executed, it produces the following results:

Title : C Programming
Author : Nuha Ali
Subject : C Programming Tutorial
Book_id : 6495407
Title : Telecom Billing
Author : Zara Ali
Subject : Telecom Billing Tutorial
Book_id : 6495700

Principles, Technologies, and Methods of Geographic Information Systems  102

In recent years, Geographic Information Systems (GIS) have undergone rapid development in both theoretical and practical dimensions. GIS has been widely applied for modeling and decision-making support across various fields such as urban management, regional planning, and environmental remediation, establishing geographic information as a vital component of the information era. The introduction of the “Digital Earth” concept has further accelerated the advancement of GIS, which serves as its technical foundation. Concurrently, scholars have been dedicated to theoretical research in areas like spatial cognition, spatial data uncertainty, and the formalization of spatial relationships. This reflects the dual nature of GIS as both an applied technology and an academic discipline, with the two aspects forming a mutually reinforcing cycle of progress.