Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C#
  4. New Methods for existing types?

New Methods for existing types?

Scheduled Pinned Locked Moved C#
question
14 Posts 6 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Reelix

    I was wondering something... Is it possible do do something like:

    string s1 = "12345";
    string s2 = s1.RemoveNum("5");
    MessageBox.Show(s2);

    Where further down you add the RemoveNum() method ONTO the string type? something like...

    public static string add RemoveNum(string num)
    {
    return string.Replace(num, "");
    }

    ? Just wondering... :)

    -= Reelix =-

    C Offline
    C Offline
    CPallini
    wrote on last edited by
    #4

    OOP way to augment functionality is inheritance, but no luck this time: String class is sealed. :)

    If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
    This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke

    R 1 Reply Last reply
    0
    • C CPallini

      OOP way to augment functionality is inheritance, but no luck this time: String class is sealed. :)

      If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
      This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke

      R Offline
      R Offline
      Reelix
      wrote on last edited by
      #5

      Dang :/ No evil way to hack through it? :p

      -= Reelix =-

      C 1 Reply Last reply
      0
      • R Reelix

        Dang :/ No evil way to hack through it? :p

        -= Reelix =-

        C Offline
        C Offline
        CPallini
        wrote on last edited by
        #6

        Of course there are ways, evil, but you have to ask the devil. :-D

        If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
        This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke

        R 1 Reply Last reply
        0
        • C CPallini

          Of course there are ways, evil, but you have to ask the devil. :-D

          If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
          This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke

          R Offline
          R Offline
          Reelix
          wrote on last edited by
          #7

          *Decompiles the .NET Framework into Assembly* *Inserts a new String Method* *Recompiles* *Looks Innocent* *Thinks...* Dang... Will only work on my PC :laugh:

          -= Reelix =-

          1 Reply Last reply
          0
          • R Reelix

            I was wondering something... Is it possible do do something like:

            string s1 = "12345";
            string s2 = s1.RemoveNum("5");
            MessageBox.Show(s2);

            Where further down you add the RemoveNum() method ONTO the string type? something like...

            public static string add RemoveNum(string num)
            {
            return string.Replace(num, "");
            }

            ? Just wondering... :)

            -= Reelix =-

            L Offline
            L Offline
            laserbaronen
            wrote on last edited by
            #8

            check out extension methods


            betonglasermur.FeedDwarf(pur_is, 17);
            ProcessStartupInfo.AintNotCreateNoWindow = (false && !true) != (true || false) ? false == true ? true : false : (true != false && false);

            Morgonen är tröttmans mecka

            L R 2 Replies Last reply
            0
            • L laserbaronen

              check out extension methods


              betonglasermur.FeedDwarf(pur_is, 17);
              ProcessStartupInfo.AintNotCreateNoWindow = (false && !true) != (true || false) ? false == true ? true : false : (true != false && false);

              Morgonen är tröttmans mecka

              L Offline
              L Offline
              laserbaronen
              wrote on last edited by
              #9

              http://www.codeproject.com/KB/cs/Using_Extension_Methods.aspx[^]


              betonglasermur.FeedDwarf(pur_is, 17);
              ProcessStartupInfo.AintNotCreateNoWindow = (false && !true) != (true || false) ? false == true ? true : false : (true != false && false);

              Morgonen är tröttmans mecka

              1 Reply Last reply
              0
              • R Reelix

                I was wondering something... Is it possible do do something like:

                string s1 = "12345";
                string s2 = s1.RemoveNum("5");
                MessageBox.Show(s2);

                Where further down you add the RemoveNum() method ONTO the string type? something like...

                public static string add RemoveNum(string num)
                {
                return string.Replace(num, "");
                }

                ? Just wondering... :)

                -= Reelix =-

                B Offline
                B Offline
                buchstaben
                wrote on last edited by
                #10

                there is a way, using extension methods. but this requires c# 3.0 .. Extension methods are static methods that can be invoked using instance method syntax. In effect, extension methods make it possible to extend existing types and constructed types with additional methods.

                P 1 Reply Last reply
                0
                • L laserbaronen

                  check out extension methods


                  betonglasermur.FeedDwarf(pur_is, 17);
                  ProcessStartupInfo.AintNotCreateNoWindow = (false && !true) != (true || false) ? false == true ? true : false : (true != false && false);

                  Morgonen är tröttmans mecka

                  R Offline
                  R Offline
                  Reelix
                  wrote on last edited by
                  #11

                  VICTORY!!!

                  using System;

                  class String
                  {
                      public string RemoveFirst(string num)
                      {
                          //num = num.Remove(num);
                          string toReturn = num.Remove(0, 1);
                          return toReturn;
                          //Console.WriteLine("Hackz0red!");
                      }
                  }
                  
                  class ExtMethodDemo
                  {
                      static void Main(string\[\] args)
                      {
                          String r1 = new String();
                          string r2 = r1.RemoveFirst("12345");
                          Console.WriteLine(r2);
                          Console.ReadLine();
                      }
                  }
                  

                  Thanks laserbaronen!!! :D

                  -= Reelix =-

                  L 1 Reply Last reply
                  0
                  • R Reelix

                    VICTORY!!!

                    using System;

                    class String
                    {
                        public string RemoveFirst(string num)
                        {
                            //num = num.Remove(num);
                            string toReturn = num.Remove(0, 1);
                            return toReturn;
                            //Console.WriteLine("Hackz0red!");
                        }
                    }
                    
                    class ExtMethodDemo
                    {
                        static void Main(string\[\] args)
                        {
                            String r1 = new String();
                            string r2 = r1.RemoveFirst("12345");
                            Console.WriteLine(r2);
                            Console.ReadLine();
                        }
                    }
                    

                    Thanks laserbaronen!!! :D

                    -= Reelix =-

                    L Offline
                    L Offline
                    laserbaronen
                    wrote on last edited by
                    #12

                    hmm o_o

                    public static class ExtMethods
                    {
                    public static string RemoveFirst(this string str)
                    {
                    return str.Remove(0,1);
                    }
                    }
                    class ExtMethodDemo
                    {
                    static void Main(string[] args)
                    {
                    string r1 = "12345".RemoveFirst();
                    Console.WriteLine(r1);
                    Console.ReadLine();
                    }
                    }

                    was thinking something like this


                    betonglasermur.FeedDwarf(pur_is, 17);
                    ProcessStartupInfo.AintNotCreateNoWindow = (false && !true) != (true || false) ? false == true ? true : false : (true != false && false);

                    Morgonen är tröttmans mecka

                    modified on Tuesday, May 20, 2008 10:05 AM

                    1 Reply Last reply
                    0
                    • B buchstaben

                      there is a way, using extension methods. but this requires c# 3.0 .. Extension methods are static methods that can be invoked using instance method syntax. In effect, extension methods make it possible to extend existing types and constructed types with additional methods.

                      P Offline
                      P Offline
                      PIEBALDconsult
                      wrote on last edited by
                      #13

                      buchstaben wrote:

                      In effect, extension methods make it possible

                      make it appear possible, when in fact it isn't. :-D

                      B 1 Reply Last reply
                      0
                      • P PIEBALDconsult

                        buchstaben wrote:

                        In effect, extension methods make it possible

                        make it appear possible, when in fact it isn't. :-D

                        B Offline
                        B Offline
                        buchstaben
                        wrote on last edited by
                        #14

                        PIEBALDconsult wrote:

                        buchstaben wrote: In effect, extension methods make it possible make it appear possible, when in fact it isn't.

                        that's just what c# 3.0 specification says.

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • World
                        • Users
                        • Groups